mirror of
https://github.com/ganelson/inform.git
synced 2024-07-01 06:24:58 +03:00
Began element-based rearrangement of index
This commit is contained in:
parent
e8aa7243c7
commit
76e952cc75
|
@ -1,6 +1,6 @@
|
|||
# Inform 7
|
||||
|
||||
v10.1.0-alpha.1+6S28 'Krypton' (1 June 2021)
|
||||
v10.1.0-alpha.1+6S29 'Krypton' (2 June 2021)
|
||||
|
||||
## About Inform 7
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
Prerelease: alpha.1
|
||||
Build Date: 1 June 2021
|
||||
Build Number: 6S28
|
||||
Build Date: 2 June 2021
|
||||
Build Number: 6S29
|
||||
|
|
|
@ -265,7 +265,7 @@ whatever was named in column 1: see below.
|
|||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="3-dbtr.html#SP6_1_1" class="named-paragraph-link"><span class="named-paragraph">Actually issue PM_TableDefiningTheImpossible problem</span><span class="named-paragraph-number">6.1.1</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="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">) </span><a href="7-tbl.html#SP29" class="function-link"><span class="function-syntax">Tables::use_to_define</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">defining_objects</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</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">t</span><span class="plain-syntax">) </span><a href="7-tbl.html#SP26" class="function-link"><span class="function-syntax">Tables::use_to_define</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">defining_objects</span><span class="plain-syntax">, </span><span class="identifier-syntax">V</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">);</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-dbtr.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">Issue PM_TableDefiningObject problem</span><span class="named-paragraph-number">4.1.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
|
|
|
@ -73,7 +73,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">assertions</a></li><li><a href="index.html#7">Chapter 7: Other Gadgets</a></li><li><b>Tables</b></li></ul></div>
|
||||
<p class="purpose">To manage and compile tables, which are two-dimensional arrays with associative look-up facilities provided at run-time.</p>
|
||||
|
||||
<ul class="toc"><li><a href="7-tbl.html#SP4">§4. Traversing for tables</a></li><li><a href="7-tbl.html#SP6">§6. Table basics</a></li><li><a href="7-tbl.html#SP12">§12. Table creation</a></li><li><a href="7-tbl.html#SP19">§19. Table stocking</a></li><li><a href="7-tbl.html#SP23">§23. Completing tables</a></li><li><a href="7-tbl.html#SP24">§24. Amending tables</a></li><li><a href="7-tbl.html#SP26">§26. Indexing</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="7-tbl.html#SP4">§4. Traversing for tables</a></li><li><a href="7-tbl.html#SP6">§6. Table basics</a></li><li><a href="7-tbl.html#SP12">§12. Table creation</a></li><li><a href="7-tbl.html#SP19">§19. Table stocking</a></li><li><a href="7-tbl.html#SP23">§23. Completing tables</a></li><li><a href="7-tbl.html#SP24">§24. Amending tables</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This is how a table is stored. Note that the limit on columns per table
|
||||
must not rise to 100 or beyond because that would break the system of table
|
||||
|
@ -237,7 +237,7 @@ some of these fields have been properly filled in.
|
|||
<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="element-syntax">no_columns</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">Tables::get_no_rows</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">Tables::get_no_rows</span></span>:<br/><a href="7-tbl.html#SP27_1">§27.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::get_no_rows</span><span class="plain-syntax">(</span><span class="reserved-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">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">=0;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PN</span><span class="plain-syntax">=</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">columns</span><span class="plain-syntax">[0].</span><span class="element-syntax">entries</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</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="identifier-syntax">PN</span><span class="plain-syntax">-></span><span class="element-syntax">next</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="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">blank_rows</span><span class="plain-syntax">;</span>
|
||||
|
@ -372,7 +372,7 @@ table and then destroy the temporary one made here.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::create_table</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">Tables::create_table</span></span>:<br/>Passes through Major Nodes - <a href="2-ptmn.html#SP3_1">§3.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">PN</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::create_table</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">Tables::create_table</span></span>:<br/>Passes through Major Nodes - <a href="2-ptmn.html#SP3_1">§3.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">PN</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">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">connection</span><span class="plain-syntax"> = </span><span class="constant-syntax">TABLE_IS_NEW</span><span class="plain-syntax">; </span><span class="comment-syntax"> i.e., no connection with existing tables</span>
|
||||
|
||||
|
@ -983,7 +983,7 @@ columns and in the same order.
|
|||
<p class="commentary firstcommentary"><a id="SP18" class="paragraph-anchor"></a><b>§18. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Tables::empty_cell_node</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">Tables::empty_cell_node</span></span>:<br/><a href="7-tbl.html#SP17_9_3">§17.9.3</a>, <a href="7-tbl.html#SP17_10_2">§17.10.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="function-syntax">Tables::empty_cell_node</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">Tables::empty_cell_node</span></span>:<br/><a href="7-tbl.html#SP17_9_3">§17.9.3</a>, <a href="7-tbl.html#SP17_10_2">§17.10.2</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">Diagrams::new_PROPER_NOUN</span><span class="plain-syntax">(</span><span class="identifier-syntax">EMPTY_WORDING</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
|
@ -996,7 +996,7 @@ things to be defined. So we exempt it from the checking 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">Tables::stock_table</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">Tables::stock_table</span></span>:<br/><a href="7-tbl.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">phase</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::stock_table</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">Tables::stock_table</span></span>:<br/><a href="7-tbl.html#SP4">§4</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">phase</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">TABLES</span><span class="plain-syntax">, </span><span class="string-syntax">"Stocking $B (%d cols): phase %d\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">no_columns</span><span class="plain-syntax">, </span><span class="identifier-syntax">phase</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_being_examined</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">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>
|
||||
|
@ -1192,7 +1192,7 @@ people — it needs to be "yourself" instead, since "player" is a variable.
|
|||
<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">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::stock_table_cell</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">Tables::stock_table_cell</span></span>:<br/><a href="7-tbl.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cell</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_count</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::stock_table_cell</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">Tables::stock_table_cell</span></span>:<br/><a href="7-tbl.html#SP19">§19</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cell</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_count</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col_count</span><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">cell</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">topic_exception</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_cell_node</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cell</span><span class="plain-syntax">;</span>
|
||||
|
@ -1363,7 +1363,7 @@ at a time:
|
|||
</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">Tables::amend_table</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">Tables::amend_table</span></span>:<br/><a href="7-tbl.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">main_table</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">amendments</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::amend_table</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">Tables::amend_table</span></span>:<br/><a href="7-tbl.html#SP23_1">§23.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">main_table</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">amendments</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOGIF</span><span class="plain-syntax">(</span><span class="identifier-syntax">TABLES</span><span class="plain-syntax">, </span><span class="string-syntax">"Amending table $B according to $B\n"</span><span class="plain-syntax">, </span><span class="identifier-syntax">main_table</span><span class="plain-syntax">, </span><span class="identifier-syntax">amendments</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">leftmost_amend_cell</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">amend_row</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">amendment_problem_opened</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
|
@ -1580,7 +1580,7 @@ original:
|
|||
</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">Tables::splice_table_row</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">Tables::splice_table_row</span></span>:<br/><a href="7-tbl.html#SP24_1">§24.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_to</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_from</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::splice_table_row</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">Tables::splice_table_row</span></span>:<br/><a href="7-tbl.html#SP24_1">§24.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_to</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">table_from</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_to</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">row_from</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">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="function-syntax"><table_to-></span><span class="element-syntax">no_columns</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">cell_to</span><span class="plain-syntax">, *</span><span class="identifier-syntax">cell_from</span><span class="plain-syntax">;</span>
|
||||
|
@ -1597,148 +1597,11 @@ original:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. Indexing. </b>Tables inside extensions are often used just for the storage needed to manage
|
||||
back-of-house algorithms, so to speak, and they aren't intended for the end
|
||||
user to poke around with; that's certainly true of the tables in the Standard
|
||||
Rules, which of course are always present. So these are hidden by default.
|
||||
<p class="commentary firstcommentary"><a id="SP26" class="paragraph-anchor"></a><b>§26. </b>This is called when a table is being asked to define objects (or kinds).
|
||||
</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">Tables::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="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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">m</span><span class="plain-syntax"> = </span><a href="7-tbl.html#SP27" class="function-link"><span class="function-syntax">Tables::index_tables_in</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="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">m</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">"Show tables inside extensions too"</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">"Show tables inside extensions (there are none in the main text)"</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">Index::extra_div_open</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">efc</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">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">) </span><a href="7-tbl.html#SP27" class="function-link"><span class="function-syntax">Tables::index_tables_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">efc</span><span class="plain-syntax">++);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_div_close</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP27" class="paragraph-anchor"></a><b>§27. </b>This tabulates tables within a given extension, returning the number listed,
|
||||
and does nothing at all if that number is 0.
|
||||
</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">Tables::index_tables_in</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">Tables::index_tables_in</span></span>:<br/><a href="7-tbl.html#SP26">§26</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">efc</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">tc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="reserved-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="reserved-syntax">table</span><span class="plain-syntax">) </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="7-tbl.html#SP28" class="function-link"><span class="function-syntax">Tables::table_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tc</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tc</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">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%S</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">edition</span><span class="plain-syntax">-></span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_plain_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">table</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><a href="7-tbl.html#SP28" class="function-link"><span class="function-syntax">Tables::table_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="7-tbl.html#SP27_1" class="named-paragraph-link"><span class="named-paragraph">Index this table</span><span class="named-paragraph-number">27.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP27_1" class="paragraph-anchor"></a><b>§27.1. </b>The following probably ought to use a multiplication sign rather than a
|
||||
Helvetica-style lower case "x", but life is full of compromises.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index this table</span><span class="named-paragraph-number">27.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::first_html_column_spaced</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">"<b>%+W</b>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">headline_fragment</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">table_contribution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ntc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">table_created_at</span><span class="plain-syntax">; </span><span class="identifier-syntax">tc</span><span class="plain-syntax">; </span><span class="identifier-syntax">tc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tc</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">ntc</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">" +"</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">tc</span><span class="plain-syntax">-></span><span class="element-syntax">source_table</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::next_html_column_spaced</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax"> = </span><a href="7-tbl.html#SP9" class="function-link"><span class="function-syntax">Tables::get_no_rows</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">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">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"smaller\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d definition%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">rc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">rc</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d column%s x %d row%s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">no_columns</span><span class="plain-syntax">, (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">no_columns</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-syntax">"s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">, (</span><span class="identifier-syntax">rc</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">blank_rows</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">" (%d blank"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">blank_rows</span><span 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">t</span><span class="plain-syntax">-></span><span class="element-syntax">blank_rows_for_each_text</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">", one for each %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">blank_rows_for_each_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">col</span><span class="plain-syntax"> < </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">no_columns</span><span class="plain-syntax">; </span><span class="identifier-syntax">col</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;&nbsp;col %d:&nbsp;&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">+1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="element-syntax">column_identity</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">t</span><span class="plain-syntax">-></span><span class="element-syntax">first_column_by_definition</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">where_used_to_define</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">PN</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">PN</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">t</span><span class="plain-syntax">-></span><span class="element-syntax">first_column_by_definition</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>sets</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&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">first_column_by_definition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" entry"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">first_column_by_definition</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cell</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">row</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">row</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cell</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">columns</span><span class="plain-syntax">[0].</span><span class="element-syntax">entries</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">; </span><span class="identifier-syntax">cell</span><span class="plain-syntax">; </span><span class="identifier-syntax">cell</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cell</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">row</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">row</span><span class="plain-syntax"> > </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">cell</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">cell</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">first_column_by_definition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-tc.html#SP5" class="function-link"><span class="function-syntax">Tables::Columns::get_kind</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="element-syntax">column_identity</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">" property"</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">"of "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write_plural</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="7-tc.html#SP5" class="function-link"><span class="function-syntax">Tables::Columns::get_kind</span></a><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="element-syntax">column_identity</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="7-tbl.html#SP27">§27</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP28" class="paragraph-anchor"></a><b>§28. </b>The following laboriously tests whether a table is defined within a
|
||||
given extension:
|
||||
</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">Tables::table_within</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">Tables::table_within</span></span>:<br/><a href="7-tbl.html#SP27">§27</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">amendment_of</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">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at_heading</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="element-syntax">table_created_at</span><span class="plain-syntax">-></span><span class="element-syntax">source_table</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at_E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::get_extension_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">at_heading</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">at_E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP29" class="paragraph-anchor"></a><b>§29. </b>This is called when a table is being asked to define objects (or kinds).
|
||||
</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">Tables::use_to_define</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">Tables::use_to_define</span></span>:<br/>Define by Table Requests - <a href="3-dbtr.html#SP4_1_1">§4.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defining_objects</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Tables::use_to_define</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">Tables::use_to_define</span></span>:<br/>Define by Table Requests - <a href="3-dbtr.html#SP4_1_1">§4.1.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table</span><span class="plain-syntax"> *</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">defining_objects</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">where</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"no 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">defining_objects</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">contains_property_values_at_run_time</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
|
|
|
@ -178,7 +178,7 @@ of entry in the column \(C\).
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Tables::Columns::get_kind</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">Tables::Columns::get_kind</span></span>:<br/><a href="7-tc.html#SP12">§12</a>, <a href="7-tc.html#SP13">§13</a>, <a href="7-tc.html#SP14">§14</a><br/>Define by Table Requests - <a href="3-dbtr.html#SP4_2_1">§4.2.1</a><br/>Tables - <a href="7-tbl.html#SP10">§10</a>, <a href="7-tbl.html#SP27_1">§27.1</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table_column</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</span><span class="plain-syntax">) {</span>
|
||||
<span class="identifier-syntax">kind</span><span class="plain-syntax"> *</span><span class="function-syntax">Tables::Columns::get_kind</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">Tables::Columns::get_kind</span></span>:<br/><a href="7-tc.html#SP12">§12</a>, <a href="7-tc.html#SP13">§13</a>, <a href="7-tc.html#SP14">§14</a><br/>Define by Table Requests - <a href="3-dbtr.html#SP4_2_1">§4.2.1</a><br/>Tables - <a href="7-tbl.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">table_column</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</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">tc</span><span class="plain-syntax">-></span><span class="element-syntax">kind_stored_in_column</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ simplified form of the iFiction record, without the XML overhead.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CardElement::Library_Card</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CardElement::Library_Card</span></span>:<br/>Index File Services - <a href="6-ifs.html#SP11">§11</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">CardElement::render</span><button class="popup" onclick="togglePopup('usagePopup1')"><span class="comment-syntax">?</span><span class="popuptext" id="usagePopup1">Usage of <span class="code-font"><span class="function-syntax">CardElement::render</span></span>:<br/>Index File Services - <a href="6-ifs.html#SP11">§11</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">inter_tree</span><span class="plain-syntax"> *</span><span class="identifier-syntax">I</span><span class="plain-syntax"> = </span><a href="6-ifs.html#SP1" class="function-link"><span class="function-syntax">Index::get_tree</span></a><span class="plain-syntax">();</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inter_package</span><span class="plain-syntax"> *</span><span class="identifier-syntax">pack</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Inter::Packages::by_url</span><span class="plain-syntax">(</span><span class="identifier-syntax">I</span><span class="plain-syntax">, </span><span class="identifier-syntax">I</span><span class="string-syntax">"/main/completion/bibliographic"</span><span class="plain-syntax">);</span>
|
||||
|
||||
|
|
|
@ -824,10 +824,44 @@ to show, hide and colour things:
|
|||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">Index::index_actual_element</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::index_actual_element</span></span>:<br/><a href="6-ifs.html#SP8_4">§8.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">elt</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cd"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><a href="6-ce.html#SP1" class="function-link"><span class="function-syntax">CardElement::Library_Card</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="6-ce.html#SP1" class="function-link"><span class="function-syntax">CardElement::render</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="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">CORE_MODULE</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Tb"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXTables::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"In"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXInnards::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Supervisor::current_vm</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Rl"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXRelations::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ev"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXEvents::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">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">IXRulesForScenes::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">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">IXScenes::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Bh"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXBehaviour::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Fi"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXFigures::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"C"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IndexHeadings::index</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">IndexExtensions::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
@ -840,20 +874,6 @@ to show, hide and colour things:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">Equations::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Fi"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXFigures::index_all</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">IXSounds::index_all</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">IXExternalFiles::index_all</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Tb"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Tables::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"In"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXActivities::innards</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Supervisor::current_vm</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ph"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Phrases::Index::index_page_Phrasebook</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
@ -863,10 +883,6 @@ to show, hide and colour things:
|
|||
<span class="plain-syntax"> </span><span class="identifier-syntax">IndexLexicon::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Rl"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXRelations::index_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Vb"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IndexLexicon::index_verbs</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
|
@ -891,22 +907,6 @@ to show, hide and colour things:
|
|||
<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">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">IXScenes::index</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Ev"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXRules::index_timed_rules</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">); </span><span class="comment-syntax"> rules which happen at set times of day</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">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">IXScenes::index_rules</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"St"</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">IXRules::Rules_page</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>
|
||||
|
@ -918,33 +918,19 @@ 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">"A1"</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">CommandsIndex::page</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Bh"</span><span class="plain-syntax">)) {</span>
|
||||
<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">IXActions::index_named_patterns</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"Cm"</span><span class="plain-syntax">)) {</span>
|
||||
<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">CommandsIndex::commands</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"To"</span><span class="plain-syntax">)) {</span>
|
||||
<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">CommandsIndex::tokens</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">endif</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">Str::eq_wide_string</span><span class="plain-syntax">(</span><span class="identifier-syntax">elt</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="string-syntax">"A2"</span><span class="plain-syntax">)) {</span>
|
||||
<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">CommandsIndex::alphabetical</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">endif</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="identifier-syntax">endif</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-li.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-li.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-li.html">2</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -72,8 +72,6 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Activities</b></li></ul></div>
|
||||
<p class="purpose">To index activities.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-act.html#SP3">§3. Describing the current VM</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b></p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -88,7 +86,7 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax"> *</span><span class="identifier-syntax">next</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">activity_crossref</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure activity_indexing_data is private to this section.</li><li>The structure activity_crossref is accessed in 2/ins, 2/rls, 3/scn, 4/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure activity_indexing_data is private to this section.</li><li>The structure activity_crossref is accessed in 2/ins, 2/rls, 2/te, 3/pe, 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">
|
||||
|
@ -133,11 +131,11 @@ function togglePopup(material_id) {
|
|||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXActivities::index_details</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">IXActivities::index_details</span></span>:<br/>Rules - <a href="2-rls.html#SP7">§7</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">) {</span>
|
||||
<span class="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><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="identifier-syntax">before_rules</span><span class="plain-syntax">, </span><span class="string-syntax">"before"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="identifier-syntax">for_rules</span><span class="plain-syntax">, </span><span class="string-syntax">"for"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">-></span><span class="identifier-syntax">after_rules</span><span class="plain-syntax">, </span><span class="string-syntax">"after"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-act.html#SP2" class="function-link"><span class="function-syntax">IXActivities::index_cross_references</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
|
@ -165,73 +163,8 @@ function togglePopup(material_id) {
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Describing the current VM. </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">IXActivities::innards</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-act.html#SP4" class="function-link"><span class="function-syntax">IXActivities::index_VM</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NewUseOptions::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">3</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">"See some technicalities for Inform maintainers only"</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">Index::extra_div_open</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-act.html#SP5" class="function-link"><span class="function-syntax">IXActivities::show_configuration</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="named-paragraph-container code-font"><a href="2-act.html#SP3_1" class="named-paragraph-link"><span class="named-paragraph">Add some paste buttons for the debugging log</span><span class="named-paragraph-number">3.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_div_close</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3_1" class="paragraph-anchor"></a><b>§3.1. </b>The index provides some hidden paste icons for these:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add some paste buttons for the debugging log</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">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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Debugging log:"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="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">NO_DEFINED_DA_VALUES</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">debugging_aspect</span><span class="plain-syntax"> *</span><span class="identifier-syntax">da</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">the_debugging_aspects</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">da</span><span class="plain-syntax">-></span><span class="identifier-syntax">unhyphenated_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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">is</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">is</span><span class="plain-syntax">, </span><span class="string-syntax">"Include %S in the debugging log."</span><span class="plain-syntax">, </span><span class="identifier-syntax">da</span><span class="plain-syntax">-></span><span class="identifier-syntax">unhyphenated_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">is</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;%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">is</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">is</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<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-act.html#SP3">§3</a>.</li></ul>
|
||||
<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">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXActivities::index_VM</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">IXActivities::index_VM</span></span>:<br/><a href="2-act.html#SP3">§3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VM</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">"target VM not set yet"</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">"STORYFILE"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Story file format: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ExtensionIndex::plot_icon</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TargetVMs::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</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>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP5" class="paragraph-anchor"></a><b>§5. </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">IXActivities::show_configuration</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">IXActivities::show_configuration</span></span>:<br/><a href="2-act.html#SP3">§3</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">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">"CONFIG"</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">"Inform language definition:\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Included"</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">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Excluded"</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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-rls.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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="2-pi.html">pi</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-pi.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-rls.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-pi.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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
104
docs/index-module/2-be.html
Normal file
104
docs/index-module/2-be.html
Normal file
|
@ -0,0 +1,104 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Behaviour Element</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Behaviour Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Behaviour Element</b></li></ul></div>
|
||||
<p class="purpose">To index relations.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>A brief table of relations appears on the Phrasebook Index page.
|
||||
</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">IXBehaviour::render</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">named_action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">num_naps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">num_naps</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"No names for kinds of action have yet been defined."</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">nap</span><span class="plain-syntax">, </span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>%+W</b>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</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">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_declaration</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">"&nbsp;&nbsp;<i>defined as any of the following acts:</i>\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">named_action_pattern_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nape</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">nape</span><span class="plain-syntax">, </span><span class="identifier-syntax">named_action_pattern_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">patterns</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">nape</span><span class="plain-syntax">-></span><span class="identifier-syntax">behaviour</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">"&nbsp;&nbsp;&nbsp;&nbsp;%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_pattern</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">ap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_pattern</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-rfse.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresscurrent">be</li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-fe.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
140
docs/index-module/2-ee.html
Normal file
140
docs/index-module/2-ee.html
Normal file
|
@ -0,0 +1,140 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Events Element</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Events Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Events Element</b></li></ul></div>
|
||||
<p class="purpose">To index relations.</p>
|
||||
|
||||
<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">IXEvents::render</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">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ee.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Index events with no specific time</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-ee.html#SP1_2" class="named-paragraph-link"><span class="named-paragraph">Index timetabled events</span><span class="named-paragraph-number">1.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">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<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">"<i>None.</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>§1.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index events with no specific time</span><span class="named-paragraph-number">1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</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">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</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="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Events with no specific time</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>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">when_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"tightin2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">)) &&</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">" (where triggered: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TimedRules::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ee.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_2" class="paragraph-anchor"></a><b>§1.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index timetabled events</span><span class="named-paragraph-number">1.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</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">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</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="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., an actual time of day in minutes since midnight</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Timetable</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>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tt_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"in2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">)) &&</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-ee.html#SP1">§1</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ie2.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresscurrent">ee</li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-rfse.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
149
docs/index-module/2-ie2.html
Normal file
149
docs/index-module/2-ie2.html
Normal file
|
@ -0,0 +1,149 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Innards Element</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Innards Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Innards Element</b></li></ul></div>
|
||||
<p class="purpose">To index tables.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-ie2.html#SP1">§1. Describing the current VM</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Describing the current VM. </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">IXInnards::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ie2.html#SP2" class="function-link"><span class="function-syntax">IXInnards::index_VM</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">NewUseOptions::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">3</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">"See some technicalities for Inform maintainers only"</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">Index::extra_div_open</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">3</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-ie2.html#SP3" class="function-link"><span class="function-syntax">IXInnards::show_configuration</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="named-paragraph-container code-font"><a href="2-ie2.html#SP1_1" class="named-paragraph-link"><span class="named-paragraph">Add some paste buttons for the debugging log</span><span class="named-paragraph-number">1.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_div_close</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP1_1" class="paragraph-anchor"></a><b>§1.1. </b>The index provides some hidden paste icons for these:
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Add some paste buttons for the debugging log</span><span class="named-paragraph-number">1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Debugging log:"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="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">NO_DEFINED_DA_VALUES</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">debugging_aspect</span><span class="plain-syntax"> *</span><span class="identifier-syntax">da</span><span class="plain-syntax"> = &(</span><span class="identifier-syntax">the_debugging_aspects</span><span class="plain-syntax">[</span><span class="identifier-syntax">i</span><span class="plain-syntax">]);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">Str::len</span><span class="plain-syntax">(</span><span class="identifier-syntax">da</span><span class="plain-syntax">-></span><span class="identifier-syntax">unhyphenated_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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">is</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">is</span><span class="plain-syntax">, </span><span class="string-syntax">"Include %S in the debugging log."</span><span class="plain-syntax">, </span><span class="identifier-syntax">da</span><span class="plain-syntax">-></span><span class="identifier-syntax">unhyphenated_name</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">is</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;%S"</span><span class="plain-syntax">, </span><span class="identifier-syntax">is</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">is</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<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-ie2.html#SP1">§1</a>.</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">
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInnards::index_VM</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">IXInnards::index_VM</span></span>:<br/><a href="2-ie2.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">target_vm</span><span class="plain-syntax"> *</span><span class="identifier-syntax">VM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">VM</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">"target VM not set yet"</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">"STORYFILE"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"Story file format: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ExtensionIndex::plot_icon</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TargetVMs::write</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">VM</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>
|
||||
</pre>
|
||||
<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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXInnards::show_configuration</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">IXInnards::show_configuration</span></span>:<br/><a href="2-ie2.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="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">"CONFIG"</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">"Inform language definition:\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Included"</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">PluginManager::list_plugins</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Excluded"</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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-te.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresscurrent">ie2</li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ee.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -179,7 +179,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, 2/rls, 2/act, 3/scn, 4/em and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure contents_entry is accessed in 2/ins, 2/rls, 2/act, 2/te, 3/pe, 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>
|
||||
|
||||
|
@ -360,7 +360,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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -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-rlt.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-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-rlt.html">rlt</a></li><li class="progresscurrent">inf</li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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-rls.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-re.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-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-re.html">re</a></li><li class="progresscurrent">inf</li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-rls.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 accessed in 2/rls, 2/act, 3/scn, 4/em and here.</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 2/rls, 2/act, 2/te, 3/pe, 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">
|
||||
|
@ -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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -684,7 +684,7 @@ be able to print out a table of just those verbs created in that extension.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</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">vu</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_vu_created</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">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::base_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">VerbUsages::get_verb</span><span class="plain-syntax">(</span><span class="identifier-syntax">vu</span><span 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><a href="2-rlt.html#SP2" class="function-link"><span class="function-syntax">IXRelations::index_for_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::show_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preposition</span><span class="plain-syntax"> *</span><span class="identifier-syntax">prep</span><span class="plain-syntax">;</span>
|
||||
|
@ -693,13 +693,26 @@ be able to print out a table of just those verbs created in that extension.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</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">prep</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_prep_created</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">VerbMeanings::get_regular_meaning_of_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">Verbs::find_form</span><span class="plain-syntax">(</span><span class="identifier-syntax">copular_verb</span><span class="plain-syntax">, </span><span class="identifier-syntax">prep</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">bp</span><span class="plain-syntax">) </span><a href="2-rlt.html#SP2" class="function-link"><span class="function-syntax">IXRelations::index_for_verbs</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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><a href="2-li.html#SP10" class="function-link"><span class="function-syntax">IndexLexicon::show_relation</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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">return</span><span class="plain-syntax">;</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">IndexLexicon::show_relation</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">" ... <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">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(a meaning internal to Inform)"</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">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">right_way_round</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">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">reversal</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">"reversed "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">relation_name</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">"</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="1-im.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresscurrentchapter">2</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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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">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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -501,7 +501,7 @@ so we won't list them here.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-act.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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresscurrent">pi</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>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-act.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresscurrent">pi</li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-te.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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-rlt.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-re.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>Relations</title>
|
||||
<title>Relations Element</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">
|
||||
|
@ -12,14 +12,6 @@
|
|||
<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>
|
||||
|
@ -67,16 +59,16 @@ function togglePopup(material_id) {
|
|||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Relations' generated by Inweb-->
|
||||
<!--Weave of 'Relations Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Relations</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#2">Chapter 2: Indexing</a></li><li><b>Relations Element</b></li></ul></div>
|
||||
<p class="purpose">To index relations.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>A brief table of relations appears on the Phrasebook Index page.
|
||||
</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">IXRelations::index_table</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">IXRelations::render</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">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_plain_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
@ -105,25 +97,8 @@ function togglePopup(material_id) {
|
|||
<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>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>And a briefer note still for the table of verbs.
|
||||
</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">IXRelations::index_for_verbs</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">IXRelations::index_for_verbs</span></span>:<br/>Lexicon Index - <a href="2-li.html#SP10">§10</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</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">" ... <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">bp</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"(a meaning internal to Inform)"</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">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">right_way_round</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">bp</span><span class="plain-syntax"> = </span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">reversal</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">"reversed "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WordAssemblages::index</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, &(</span><span class="identifier-syntax">bp</span><span class="plain-syntax">-></span><span class="identifier-syntax">relation_name</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">"</i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-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-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">rlt</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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">re</li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
91
docs/index-module/2-rfse.html
Normal file
91
docs/index-module/2-rfse.html
Normal file
|
@ -0,0 +1,91 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Rules for Scenes Element</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Rules for Scenes Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Rules for Scenes Element</b></li></ul></div>
|
||||
<p class="purpose">The RS element.</p>
|
||||
|
||||
<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">IXRulesForScenes::render</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">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">"<b>The scene-changing machinery</b>"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Scene changing"</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">Rulebooks::std</span><span class="plain-syntax">(</span><span class="identifier-syntax">SCENE_CHANGING_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>
|
||||
<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><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><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Rulebooks::std</span><span class="plain-syntax">(</span><span class="identifier-syntax">WHEN_SCENE_BEGINS_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>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><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">Rulebooks::std</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>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-ee.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresscurrent">rfse</li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-be.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -72,7 +72,7 @@ function togglePopup(material_id) {
|
|||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Rules</b></li></ul></div>
|
||||
<p class="purpose">To index rules and rulebooks.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-rls.html#SP1">§1. Indexing</a></li><li><a href="2-rls.html#SP3">§3. Indexing of lists</a></li><li><a href="2-rls.html#SP6">§6. Rules index</a></li><li><a href="2-rls.html#SP9">§9. Affected by placements</a></li><li><a href="2-rls.html#SP11">§11. Rule contexts</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="2-rls.html#SP1">§1. Indexing</a></li><li><a href="2-rls.html#SP3">§3. Indexing of lists</a></li><li><a href="2-rls.html#SP6">§6. Rules index</a></li><li><a href="2-rls.html#SP9">§9. Affected by placements</a></li><li><a href="2-rls.html#SP10">§10. Rule contexts</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Indexing. </b>Some rules are provided with index text:
|
||||
</p>
|
||||
|
@ -172,7 +172,7 @@ function togglePopup(material_id) {
|
|||
<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">responses</span><span class="plain-syntax">[</span><span class="identifier-syntax">l</span><span class="plain-syntax">].</span><span class="identifier-syntax">message</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::extra_div_open_nested</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">1000000</span><span class="plain-syntax">+</span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</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">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP12" class="function-link"><span class="function-syntax">IXRules::index_response</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">responses</span><span class="plain-syntax">[</span><span class="identifier-syntax">l</span><span class="plain-syntax">].</span><span class="identifier-syntax">message</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::index_response</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="identifier-syntax">l</span><span class="plain-syntax">, </span><span class="identifier-syntax">R</span><span class="plain-syntax">-></span><span class="identifier-syntax">responses</span><span class="plain-syntax">[</span><span class="identifier-syntax">l</span><span class="plain-syntax">].</span><span class="identifier-syntax">message</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">c</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">c</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">Index::extra_div_close_nested</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
|
@ -564,14 +564,8 @@ popular rulebooks, showing their contents in logical order.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">nb</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">IXRules::index_scene</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">IXRules::index_scene</span></span>:<br/>Scenes - <a href="3-scn.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="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">"<b>The scene-changing machinery</b>"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"Scene changing"</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">Rulebooks::std</span><span class="plain-syntax">(</span><span class="identifier-syntax">SCENE_CHANGING_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>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">unique_xtra_no</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">IXRules::index_rules_box</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">IXRules::index_rules_box</span></span>:<br/><a href="2-rls.html#SP6_1">§6.1</a>, <a href="2-rls.html#SP6_2">§6.2</a>, <a href="2-rls.html#SP6_3">§6.3</a>, <a href="2-rls.html#SP6_4">§6.4</a>, <a href="2-rls.html#SP6_5">§6.5</a>, <a href="2-rls.html#SP6_7">§6.7</a>, <a href="2-rls.html#SP6_10_1">§6.10.1</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Scenes - <a href="3-scn.html#SP1_4">§1.4</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">doc_link</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_rules_box</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">IXRules::index_rules_box</span></span>:<br/><a href="2-rls.html#SP6_1">§6.1</a>, <a href="2-rls.html#SP6_2">§6.2</a>, <a href="2-rls.html#SP6_3">§6.3</a>, <a href="2-rls.html#SP6_4">§6.4</a>, <a href="2-rls.html#SP6_5">§6.5</a>, <a href="2-rls.html#SP6_7">§6.7</a>, <a href="2-rls.html#SP6_10_1">§6.10.1</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Rules for Scenes Element - <a href="2-rfse.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="reserved-syntax">char</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="identifier-syntax">text_stream</span><span class="plain-syntax"> *</span><span class="identifier-syntax">doc_link</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">activity</span><span class="plain-syntax"> *</span><span class="identifier-syntax">av</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">text</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">indent</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">hide_behind_plus</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">xtra_no</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">rb</span><span class="plain-syntax">) </span><span class="identifier-syntax">xtra_no</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rb</span><span class="plain-syntax">-></span><span class="identifier-syntax">allocation_id</span><span class="plain-syntax">;</span>
|
||||
|
@ -653,7 +647,7 @@ popular rulebooks, showing their contents in logical order.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rb</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><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</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">av</span><span class="plain-syntax">) </span><a href="2-act.html#SP2" class="function-link"><span class="function-syntax">IXActivities::index_details</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">av</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
@ -689,7 +683,7 @@ popular rulebooks, showing their contents in logical order.
|
|||
<p class="commentary firstcommentary"><a id="SP8" class="paragraph-anchor"></a><b>§8. </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">IXRules::index_rulebook</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">IXRules::index_rulebook</span></span>:<br/><a href="2-rls.html#SP7">§7</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_3">§1.5.1.3</a>, <a href="3-scn.html#SP1_5_1_5">§1.5.1.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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">billing</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp_count</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_rulebook</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">IXRules::index_rulebook</span></span>:<br/><a href="2-rls.html#SP7">§7</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Plot Element - <a href="3-pe.html#SP1_4_1_3">§1.4.1.3</a>, <a href="3-pe.html#SP1_4_1_5">§1.4.1.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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">billing</span><span class="plain-syntax">, </span><span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp_count</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">suppress_outcome</span><span class="plain-syntax"> = </span><span class="identifier-syntax">FALSE</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">rb</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">billing</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">) </span><span class="identifier-syntax">internal_error</span><span class="plain-syntax">(</span><span class="string-syntax">"No billing for rb index"</span><span class="plain-syntax">);</span>
|
||||
|
@ -706,14 +700,14 @@ popular rulebooks, showing their contents in logical order.
|
|||
<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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_action_rules</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">IXRules::index_action_rules</span></span>:<br/>Actions - <a href="3-act.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">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">,</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_action_rules</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">IXRules::index_action_rules</span></span>:<br/>Actions - <a href="3-act.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">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">, </span><span class="identifier-syntax">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</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">code</span><span class="plain-syntax">, </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">desc</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp_count</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="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP4" class="function-link"><span class="function-syntax">IXRules::list_suppress_indexed_links</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">code</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">t</span><span class="plain-syntax"> += </span><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Rulebooks::std</span><span class="plain-syntax">(</span><span class="identifier-syntax">code</span><span class="plain-syntax">), </span><span class="identifier-syntax">desc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::action_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">), </span><span class="identifier-syntax">resp_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::action_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">an</span><span class="plain-syntax">), </span><span class="identifier-syntax">resp_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rb</span><span class="plain-syntax">) </span><span class="identifier-syntax">t</span><span class="plain-syntax"> += </span><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">desc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">resp_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), </span><span class="identifier-syntax">resp_count</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP4" class="function-link"><span class="function-syntax">IXRules::list_resume_indexed_links</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">t</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
@ -756,7 +750,7 @@ have affected it in this way:
|
|||
<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="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::rb_index_placements</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">IXRules::rb_index_placements</span></span>:<br/><a href="2-rls.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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::rb_index_placements</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">IXRules::rb_index_placements</span></span>:<br/><a href="2-rls.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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">placement_affecting</span><span class="plain-syntax"> *</span><span class="identifier-syntax">npl</span><span class="plain-syntax"> = </span><span class="identifier-syntax">rb</span><span class="plain-syntax">-></span><span class="identifier-syntax">indexing_data</span><span class="plain-syntax">.</span><span class="element-syntax">placement_list</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">npl</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;&nbsp;&nbsp;&nbsp;&nbsp;"</span><span class="plain-syntax">);</span>
|
||||
|
@ -769,7 +763,7 @@ have affected it in this way:
|
|||
<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">IXRules::index_outcomes</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">IXRules::index_outcomes</span></span>:<br/><a href="2-rls.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">outcomes</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">suppress_outcome</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_outcomes</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">IXRules::index_outcomes</span></span>:<br/><a href="2-rls.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">outcomes</span><span class="plain-syntax"> *</span><span class="identifier-syntax">outs</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">suppress_outcome</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">suppress_outcome</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">rulebook_outcome</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ro</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">ro</span><span class="plain-syntax">, </span><span class="identifier-syntax">rulebook_outcome</span><span class="plain-syntax">, </span><span class="identifier-syntax">outs</span><span class="plain-syntax">-></span><span class="identifier-syntax">named_outcomes</span><span class="plain-syntax">) {</span>
|
||||
|
@ -802,74 +796,8 @@ have affected it in this way:
|
|||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rulebook_indexing_data is private to this section.</li><li>The structure placement_affecting is accessed in 2/ins, 2/act, 3/scn, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. </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">IXRules::index_timed_rules</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">when_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rls.html#SP10_1" class="named-paragraph-link"><span class="named-paragraph">Index events with no specific time</span><span class="named-paragraph-number">10.1</span></a></span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-rls.html#SP10_2" class="named-paragraph-link"><span class="named-paragraph">Index timetabled events</span><span class="named-paragraph-number">10.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">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<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">"<i>None.</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP10_1" class="paragraph-anchor"></a><b>§10.1. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index events with no specific time</span><span class="named-paragraph-number">10.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">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</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">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</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="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> == </span><span class="identifier-syntax">NO_FIXED_TIME</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">when_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Events with no specific time</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>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">when_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"tightin2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">)) &&</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">" (where triggered: "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">linked_list</span><span class="plain-syntax"> *</span><span class="identifier-syntax">L</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TimedRules::get_uses_as_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">p</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">, </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax">, </span><span class="identifier-syntax">L</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">Wordings::first_wn</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">p</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-rls.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10_2" class="paragraph-anchor"></a><b>§10.2. </b><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index timetabled events</span><span class="named-paragraph-number">10.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">id_body</span><span class="plain-syntax"> *</span><span class="identifier-syntax">idb</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">idb</span><span class="plain-syntax">, </span><span class="identifier-syntax">id_body</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="identifier-syntax">TimedRules::get_timing_of_event</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax"> >= </span><span class="constant-syntax">0</span><span class="plain-syntax">) { </span><span class="comment-syntax"> i.e., an actual time of day in minutes since midnight</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tt_count</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>Timetable</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>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">tt_count</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">"p"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"in2\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">ImperativeDefinitions::index_preamble</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">idb</span><span class="plain-syntax">-></span><span class="identifier-syntax">head_of_defn</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</span><span class="plain-syntax">)) &&</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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">ImperativeDefinitions::body_at</span><span class="plain-syntax">(</span><span class="identifier-syntax">idb</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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-rls.html#SP10">§10</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. Rule contexts. </b>These are mainly (only?) used in indexing, as a way to represent the idea of
|
||||
<ul class="endnotetexts"><li>The structure rulebook_indexing_data is private to this section.</li><li>The structure placement_affecting is accessed in 2/ins, 2/act, 2/te, 3/pe, 4/em and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP10" class="paragraph-anchor"></a><b>§10. Rule contexts. </b>These are mainly (only?) used in indexing, as a way to represent the idea of
|
||||
being the relevant scene or action for a rule.
|
||||
</p>
|
||||
|
||||
|
@ -879,20 +807,20 @@ being the relevant scene or action for a rule.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">struct</span><span class="plain-syntax"> </span><span class="identifier-syntax">scene</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="reserved-syntax">rule_context</span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::action_context</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">IXRules::action_context</span></span>:<br/><a href="2-rls.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::action_context</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">IXRules::action_context</span></span>:<br/><a href="2-rls.html#SP8">§8</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">action_name</span><span class="plain-syntax"> *</span><span class="identifier-syntax">an</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">action_context</span><span class="plain-syntax"> = </span><span class="identifier-syntax">an</span><span class="plain-syntax">;</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="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">rc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::scene_context</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">IXRules::scene_context</span></span>:<br/>Scenes - <a href="3-scn.html#SP1_5_1_3">§1.5.1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</span><span class="plain-syntax"> *</span><span class="identifier-syntax">s</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::scene_context</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">IXRules::scene_context</span></span>:<br/>Plot Element - <a href="3-pe.html#SP1_4_1_3">§1.4.1.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">scene</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">rule_context</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">action_context</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">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</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">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::no_rule_context</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">IXRules::no_rule_context</span></span>:<br/><a href="2-rls.html#SP7">§7</a>, <a href="2-rls.html#SP8">§8</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Scenes - <a href="3-scn.html#SP1_5_1_5">§1.5.1.5</a></span></button><span class="plain-syntax">(</span><span class="reserved-syntax">void</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::no_rule_context</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">IXRules::no_rule_context</span></span>:<br/><a href="2-rls.html#SP7">§7</a>, <a href="2-rls.html#SP8">§8</a><br/>Activities - <a href="2-act.html#SP2">§2</a><br/>Plot Element - <a href="3-pe.html#SP1_4_1_5">§1.4.1.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="reserved-syntax">rule_context</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">.</span><span class="element-syntax">action_context</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">rc</span><span class="plain-syntax">.</span><span class="element-syntax">scene_context</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NULL</span><span class="plain-syntax">;</span>
|
||||
|
@ -907,12 +835,12 @@ being the relevant scene or action for a rule.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure rule_context is private to this section.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP12" class="paragraph-anchor"></a><b>§12. </b>When we index a response, we also provide a paste button for the source
|
||||
<p class="commentary firstcommentary"><a id="SP11" class="paragraph-anchor"></a><b>§11. </b>When we index a response, we also provide a paste button for the source
|
||||
text to assert a change:
|
||||
</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">IXRules::index_response</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">IXRules::index_response</span></span>:<br/><a href="2-rls.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">response_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp</span><span class="plain-syntax">) {</span>
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXRules::index_response</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">IXRules::index_response</span></span>:<br/><a href="2-rls.html#SP2_3">§2.3</a></span></button><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">, </span><span class="identifier-syntax">rule</span><span class="plain-syntax"> *</span><span class="identifier-syntax">R</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">marker</span><span class="plain-syntax">, </span><span class="identifier-syntax">response_message</span><span class="plain-syntax"> *</span><span class="identifier-syntax">resp</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;&nbsp;&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">"span"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"style=\"color: #ffffff; "</span>
|
||||
|
@ -936,7 +864,7 @@ text to assert a change:
|
|||
<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="progresscurrentchapter">2</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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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-act.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="progresscurrentchapter">2</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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresscurrent">rls</li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-act.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
221
docs/index-module/2-te.html
Normal file
221
docs/index-module/2-te.html
Normal file
|
@ -0,0 +1,221 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Tables Element</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Tables Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#2">Chapter 2: Indexing</a></li><li><b>Tables Element</b></li></ul></div>
|
||||
<p class="purpose">To index tables.</p>
|
||||
|
||||
<ul class="toc"><li><a href="2-te.html#SP1">§1. Indexing</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Indexing. </b>Tables inside extensions are often used just for the storage needed to manage
|
||||
back-of-house algorithms, so to speak, and they aren't intended for the end
|
||||
user to poke around with; that's certainly true of the tables in the Standard
|
||||
Rules, which of course are always present. So these are hidden by default.
|
||||
</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">IXTables::render</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">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">m</span><span class="plain-syntax"> = </span><a href="2-te.html#SP2" class="function-link"><span class="function-syntax">IXTables::index_tables_in</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="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_link</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">m</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">"Show tables inside extensions too"</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">"Show tables inside extensions (there are none in the main text)"</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">Index::extra_div_open</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">2</span><span class="plain-syntax">, </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">efc</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">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax">) </span><a href="2-te.html#SP2" class="function-link"><span class="function-syntax">IXTables::index_tables_in</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="identifier-syntax">efc</span><span class="plain-syntax">++);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Index::extra_div_close</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"e0e0e0"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>§2. </b>This tabulates tables within a given extension, returning the number listed,
|
||||
and does nothing at all if that number is 0.
|
||||
</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">IXTables::index_tables_in</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">IXTables::index_tables_in</span></span>:<br/><a href="2-te.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">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">, </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">efc</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">tc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</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">if</span><span class="plain-syntax"> (</span><a href="2-te.html#SP3" class="function-link"><span class="function-syntax">IXTables::table_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">)) </span><span class="identifier-syntax">tc</span><span class="plain-syntax">++;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tc</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">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>%S</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_copy</span><span class="plain-syntax">-></span><span class="identifier-syntax">edition</span><span class="plain-syntax">-></span><span class="identifier-syntax">work</span><span class="plain-syntax">-></span><span class="identifier-syntax">title</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_plain_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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><a href="2-te.html#SP3" class="function-link"><span class="function-syntax">IXTables::table_within</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">, </span><span class="identifier-syntax">E</span><span class="plain-syntax">))</span>
|
||||
<span class="plain-syntax"> </span><span class="named-paragraph-container code-font"><a href="2-te.html#SP2_1" class="named-paragraph-link"><span class="named-paragraph">Index this table</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">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">tc</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>The following probably ought to use a multiplication sign rather than a
|
||||
Helvetica-style lower case "x", but life is full of compromises.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Index this table</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">HTML::first_html_column_spaced</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">"<b>%+W</b>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">headline_fragment</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">table_contribution</span><span class="plain-syntax"> *</span><span class="identifier-syntax">tc</span><span class="plain-syntax">; </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">ntc</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">tc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">table_created_at</span><span class="plain-syntax">; </span><span class="identifier-syntax">tc</span><span class="plain-syntax">; </span><span class="identifier-syntax">tc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">tc</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">ntc</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">" +"</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">tc</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_table</span><span class="plain-syntax">)));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::next_html_column_spaced</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Tables::get_no_rows</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</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN_WITH</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">, </span><span class="string-syntax">"class=\"smaller\""</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d definition%s"</span><span class="plain-syntax">, </span><span class="identifier-syntax">rc</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">rc</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-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="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"%d column%s x %d row%s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_columns</span><span class="plain-syntax">, (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_columns</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-syntax">"s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rc</span><span class="plain-syntax">, (</span><span class="identifier-syntax">rc</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">blank_rows</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">" (%d blank"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">blank_rows</span><span 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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">blank_rows_for_each_text</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">", one for each %+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">blank_rows_for_each_text</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">")"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"span"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">col</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">; </span><span class="identifier-syntax">col</span><span class="plain-syntax"> < </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">no_columns</span><span class="plain-syntax">; </span><span class="identifier-syntax">col</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"&nbsp;&nbsp;col %d:&nbsp;&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">col</span><span class="plain-syntax">+1);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">wording</span><span class="plain-syntax"> </span><span class="identifier-syntax">CW</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="identifier-syntax">column_identity</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">PN</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">where_used_to_define</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">PN</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">PN</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<i>sets</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&nbsp;"</span><span class="plain-syntax">, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">"%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">CW</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">, </span><span class="string-syntax">" entry"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">PasteButtons::paste_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">TEMP</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="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="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) && (</span><span class="identifier-syntax">col</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">parse_node</span><span class="plain-syntax"> *</span><span class="identifier-syntax">cell</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">row</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">row</span><span class="plain-syntax"> = </span><span class="constant-syntax">1</span><span class="plain-syntax">, </span><span class="identifier-syntax">cell</span><span class="plain-syntax"> = </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">columns</span><span class="plain-syntax">[0].</span><span class="identifier-syntax">entries</span><span class="plain-syntax">-></span><span class="identifier-syntax">down</span><span class="plain-syntax">; </span><span class="identifier-syntax">cell</span><span class="plain-syntax">; </span><span class="identifier-syntax">cell</span><span class="plain-syntax"> = </span><span class="identifier-syntax">cell</span><span class="plain-syntax">-></span><span class="element-syntax">next</span><span class="plain-syntax">, </span><span class="identifier-syntax">row</span><span class="plain-syntax">++) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">row</span><span class="plain-syntax"> > </span><span class="constant-syntax">1</span><span class="plain-syntax">) </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">", "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">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">cell</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">cell</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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">first_column_by_definition</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write</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">Tables::Columns::get_kind</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="identifier-syntax">column_identity</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">" property"</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">"of "</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Kinds::Textual::write_plural</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Tables::Columns::get_kind</span><span class="plain-syntax">(</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">columns</span><span class="plain-syntax">[</span><span class="identifier-syntax">col</span><span class="plain-syntax">].</span><span class="identifier-syntax">column_identity</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="2-te.html#SP2">§2</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>The following laboriously tests whether a table is defined within a
|
||||
given extension:
|
||||
</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">IXTables::table_within</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">IXTables::table_within</span></span>:<br/><a href="2-te.html#SP2">§2</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">inform_extension</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">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">amendment_of</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">heading</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at_heading</span><span class="plain-syntax"> =</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Headings::of_wording</span><span class="plain-syntax">(</span><span class="identifier-syntax">Node::get_text</span><span class="plain-syntax">(</span><span class="identifier-syntax">t</span><span class="plain-syntax">-></span><span class="identifier-syntax">table_created_at</span><span class="plain-syntax">-></span><span class="identifier-syntax">source_table</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">at_E</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Headings::get_extension_containing</span><span class="plain-syntax">(</span><span class="identifier-syntax">at_heading</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">E</span><span class="plain-syntax"> == </span><span class="identifier-syntax">at_E</span><span class="plain-syntax">) </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">return</span><span class="plain-syntax"> </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-pi.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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresscurrent">te</li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="2-ie2.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -162,7 +162,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-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-rlt.html">rlt</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</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>
|
||||
<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-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-re.html">re</a></li><li class="progresssection"><a href="2-inf.html">inf</a></li><li class="progresssection"><a href="2-rls.html">rls</a></li><li class="progresssection"><a href="2-act.html">act</a></li><li class="progresssection"><a href="2-pi.html">pi</a></li><li class="progresssection"><a href="2-te.html">te</a></li><li class="progresssection"><a href="2-ie2.html">ie2</a></li><li class="progresssection"><a href="2-ee.html">ee</a></li><li class="progresssection"><a href="2-rfse.html">rfse</a></li><li class="progresssection"><a href="2-be.html">be</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -240,32 +240,6 @@ function togglePopup(material_id) {
|
|||
<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">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXActions::index_named_patterns</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">named_action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nap</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">num_naps</span><span class="plain-syntax"> = </span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">num_naps</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"No names for kinds of action have yet been defined."</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="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">nap</span><span class="plain-syntax">, </span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>%+W</b>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">Nouns::nominative_singular</span><span class="plain-syntax">(</span><span class="identifier-syntax">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">as_noun</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">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_declaration</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">"&nbsp;&nbsp;<i>defined as any of the following acts:</i>\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">named_action_pattern_entry</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nape</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER_LINKED_LIST</span><span class="plain-syntax">(</span><span class="identifier-syntax">nape</span><span class="plain-syntax">, </span><span class="identifier-syntax">named_action_pattern_entry</span><span class="plain-syntax">, </span><span class="identifier-syntax">nap</span><span class="plain-syntax">-></span><span class="identifier-syntax">patterns</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">ap</span><span class="plain-syntax"> = </span><span class="identifier-syntax">nape</span><span class="plain-syntax">-></span><span class="identifier-syntax">behaviour</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">"&nbsp;&nbsp;&nbsp;&nbsp;%+W"</span><span class="plain-syntax">, </span><span class="identifier-syntax">ap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_pattern</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">ap</span><span class="plain-syntax">-></span><span class="identifier-syntax">text_of_pattern</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="plain-syntax">}</span>
|
||||
|
||||
<span class="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXActions::index_named_patterns_for_extension</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">IXActions::index_named_patterns_for_extension</span></span>:<br/>Index Extensions - <a href="2-ie.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">source_file</span><span class="plain-syntax"> *</span><span class="identifier-syntax">sf</span><span class="plain-syntax">, </span><span class="identifier-syntax">inform_extension</span><span class="plain-syntax"> *</span><span class="identifier-syntax">E</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">named_action_pattern</span><span class="plain-syntax"> *</span><span class="identifier-syntax">nap</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>
|
||||
|
@ -278,7 +252,7 @@ function togglePopup(material_id) {
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure action_indexing_data is accessed in 3/ci and here.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<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-li.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-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="progresscurrent">act</li><li class="progresssection"><a href="3-ci.html">ci</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-ci.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-pe.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresscurrent">act</li><li class="progresssection"><a href="3-ci.html">ci</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-ci.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-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
<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-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
|
|
|
@ -577,7 +577,7 @@ the HTML index.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresscurrent">ci</li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="4-sg.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-act.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresscurrent">ci</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>
|
||||
|
|
|
@ -1,120 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>External Files</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'External Files' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>External Files</b></li></ul></div>
|
||||
<p class="purpose">To produce the index of external files.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>This is more or less perfunctory, but still of some use, if only as a list.
|
||||
</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">IXExternalFiles::index_all</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">files_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="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">files_data</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"This project doesn't read or write external files."</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of External Files</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">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</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="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/exf_binary.png\""</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">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/exf_text.png\""</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">"&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="element-syntax">name</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">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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">unextended_filename</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">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_ownership</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">OWNED_BY_THIS_PROJECT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"this project"</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">OWNED_BY_ANOTHER_PROJECT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"another project"</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">OWNED_BY_SPECIFIC_PROJECT:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"project with IFID number <b>%S</b>"</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">IFID_of_owner</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="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</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-se.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
</body>
|
||||
</html>
|
||||
|
347
docs/index-module/3-fe.html
Normal file
347
docs/index-module/3-fe.html
Normal file
|
@ -0,0 +1,347 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Figures Element</title>
|
||||
<link href="../docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<meta name="viewport" content="width=device-width initial-scale=1">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta http-equiv="Content-Language" content="en-gb">
|
||||
|
||||
<link href="../docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<script>
|
||||
function togglePopup(material_id) {
|
||||
var popup = document.getElementById(material_id);
|
||||
popup.classList.toggle("show");
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="../docs-assets/Popups.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
<link href="../docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
||||
|
||||
</head>
|
||||
<body class="commentary-font">
|
||||
<nav role="navigation">
|
||||
<h1><a href="../index.html">
|
||||
<img src="../docs-assets/Inform.png" height=72">
|
||||
</a></h1>
|
||||
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
||||
<li><a href="../other.html">other tools</a></li>
|
||||
<li><a href="../extensions.html">extensions and kits</a></li>
|
||||
<li><a href="../units.html">unit test tools</a></li>
|
||||
</ul><h2>Compiler Webs</h2><ul>
|
||||
<li><a href="../inbuild/index.html">inbuild</a></li>
|
||||
<li><a href="../inform7/index.html">inform7</a></li>
|
||||
<li><a href="../inter/index.html">inter</a></li>
|
||||
</ul><h2>Inbuild Modules</h2><ul>
|
||||
<li><a href="../supervisor-module/index.html">supervisor</a></li>
|
||||
</ul><h2>Inform7 Modules</h2><ul>
|
||||
<li><a href="../core-module/index.html">core</a></li>
|
||||
<li><a href="../assertions-module/index.html">assertions</a></li>
|
||||
<li><a href="../values-module/index.html">values</a></li>
|
||||
<li><a href="../knowledge-module/index.html">knowledge</a></li>
|
||||
<li><a href="../imperative-module/index.html">imperative</a></li>
|
||||
<li><a href="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Figures Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>Figures Element</b></li></ul></div>
|
||||
<p class="purpose">To produce the index of figures.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-fe.html#SP3">§3. Sounds Index</a></li></ul><hr class="tocbar">
|
||||
|
||||
<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">IXFigures::render</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="3-fe.html#SP2" class="function-link"><span class="function-syntax">IXFigures::index_all</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-fe.html#SP3" class="function-link"><span class="function-syntax">IXFigures::index_sounds</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="3-fe.html#SP4" class="function-link"><span class="function-syntax">IXFigures::index_files</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</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>The index is presented with thumbnails of a given pixel width, which
|
||||
the HTML renderer automatically scales to fit. Height is adjusted so as
|
||||
to match this width, preserving the aspect ratio.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax"> </span><span class="constant-syntax">80</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">IXFigures::index_all</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">IXFigures::index_all</span></span>:<br/><a href="3-fe.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="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">figures_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="plain-syntax"> </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bf</span><span class="plain-syntax">; </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</span><span class="plain-syntax"> = </span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_figure_thumbnails</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">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) < </span><span class="constant-syntax">2</span><span class="plain-syntax">) { </span><span class="comment-syntax"> cover art always creates 1</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"There are no figures, or illustrations, in this project."</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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of Figures</b>"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">count_of_displayed_figures</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">bf</span><span class="plain-syntax">, </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="identifier-syntax">figure_number</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</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">FIGURE_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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><span class="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"JPEG"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ImageFiles::get_JPEG_dimensions</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_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">rv</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">FIGURE_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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><span class="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"PNG"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ImageFiles::get_PNG_dimensions</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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">rv</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Unknown image format</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">"br"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%s format: %d (width) by %d (height) pixels"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</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="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</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">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Missing from the Figures folder</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</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_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/image_problem.png\""</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count_of_displayed_figures</span><span class="plain-syntax">++ < </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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=\"1\" src=\"file:</span><span class="comment-syntax">%f\" width=\"%d\" height=\"%d\"",</span>
|
||||
<span class="string-syntax"> bf->filename_of_image_file, THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);</span>
|
||||
<span class="string-syntax"> WRITE("</span><span class="plain-syntax">&</span><span class="identifier-syntax">nbsp</span><span class="plain-syntax">;</span><span class="string-syntax">");</span>
|
||||
<span class="string-syntax"> } else {</span>
|
||||
<span class="string-syntax"> HTML_OPEN_WITH("</span><span class="identifier-syntax">div</span><span class="string-syntax">", "</span><span class="identifier-syntax">style</span><span class="plain-syntax">=\</span><span class="string-syntax">"width:%dpx; height:%dpx; border:1px solid; background-color:#6495ed;\""</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">*</span><span class="identifier-syntax">height</span><span class="plain-syntax">/</span><span class="identifier-syntax">width</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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::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="element-syntax">name</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">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>
|
||||
<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>
|
||||
<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">"%SFilename: \"%S\" - resource number %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line2</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">figure_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count_of_displayed_figures</span><span class="plain-syntax"> > </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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">"(Only the first %d thumbnails have been shown here, "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"to avoid Inform taking up too much memory. If you'd like to "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"see more, set 'Use index figure thumbnails of at least %d.', or "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"whatever number you want to wait for.)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">*</span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. Sounds Index. </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">IXFigures::index_sounds</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">IXFigures::index_sounds</span></span>:<br/><a href="3-fe.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="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">sounds_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="plain-syntax"> </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bs</span><span class="plain-syntax">; </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SOUND_FILE</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">line2</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">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">sounds_data</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"There are no sound effects in this project."</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of Sounds</b>"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">, </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">duration</span><span class="plain-syntax">, </span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">, </span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, </span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">, </span><span class="identifier-syntax">fsize</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">midi_version</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_tracks</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">preview</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">waveform_style</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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"AIFF"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_AIFF_duration</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, &</span><span class="identifier-syntax">duration</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fseek</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">SEEK_END</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fsize</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">ftell</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"Ogg Vorbis"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preview</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">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_OggVorbis_duration</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, &</span><span class="identifier-syntax">duration</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">waveform_style</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">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"MIDI"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preview</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">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_MIDI_information</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">midi_version</span><span class="plain-syntax">, &</span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</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">rv</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Unknown sound format</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">"br"</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">waveform_style</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"Type %d %s file with %d track%s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">midi_version</span><span class="plain-syntax">, </span><span class="identifier-syntax">real_format</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-syntax">"s"</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>Warning: not officially supported in glulx yet</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">min</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">/6000), </span><span class="identifier-syntax">sec</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">%6000)/100,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">centisec</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">%100);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d.%01dKB %s file: duration "</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fsize</span><span class="plain-syntax">/1024, (</span><span class="identifier-syntax">fsize</span><span class="plain-syntax">%1024)/102, </span><span class="identifier-syntax">real_format</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">min</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d minutes "</span><span class="plain-syntax">, </span><span class="identifier-syntax">min</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sec</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">centisec</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">centisec</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d seconds"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d.%02d seconds"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sec</span><span class="plain-syntax">, </span><span class="identifier-syntax">centisec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"exactly"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"Sampled as %d.%01dkHz %s (%d.%01d kilobits/sec)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">/1000, (</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">%1000)/100,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">==1)?</span><span class="string-syntax">"Mono"</span><span class="plain-syntax">:</span><span class="string-syntax">"Stereo"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">/1000, (</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">%1000)/100);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Missing from the Sounds folder</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</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_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/image_problem.png\""</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">preview</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">"embed"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"src=\"file:</span><span class="comment-syntax">%f\" width=\"%d\" height=\"64\" "</span>
|
||||
<span class="string-syntax"> "</span><span class="identifier-syntax">autostart</span><span class="plain-syntax">=\</span><span class="string-syntax">"false\" volume=\"50%%\" mastersound"</span><span class="plain-syntax">,</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="constant-syntax">THUMBNAIL_WIDTH</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">"embed"</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">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/sound_okay.png\""</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">"&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="element-syntax">name</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">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>
|
||||
<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">"%SFilename: \"%S\" - resource number %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line2</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">sound_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</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>This is more or less perfunctory, but still of some use, if only as a list.
|
||||
</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">IXFigures::index_files</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">IXFigures::index_files</span></span>:<br/><a href="3-fe.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="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">files_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="plain-syntax"> </span><span class="identifier-syntax">files_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">exf</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">files_data</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"This project doesn't read or write external files."</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of External Files</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">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">exf</span><span class="plain-syntax">, </span><span class="identifier-syntax">files_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</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="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/exf_binary.png\""</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">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/exf_text.png\""</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">"&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="element-syntax">name</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">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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">unextended_filename</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">exf</span><span class="plain-syntax">-></span><span class="identifier-syntax">file_ownership</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">OWNED_BY_THIS_PROJECT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"this project"</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">OWNED_BY_ANOTHER_PROJECT:</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"another project"</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">OWNED_BY_SPECIFIC_PROJECT:</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"project with IFID number <b>%S</b>"</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">IFID_of_owner</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="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-be.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresscurrent">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Figures</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Figures' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>Figures</b></li></ul></div>
|
||||
<p class="purpose">To produce the index of figures.</p>
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. </b>The index is presented with thumbnails of a given pixel width, which
|
||||
the HTML renderer automatically scales to fit. Height is adjusted so as
|
||||
to match this width, preserving the aspect ratio.
|
||||
</p>
|
||||
|
||||
<pre class="definitions code-font"><span class="definition-keyword">define</span> <span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax"> </span><span class="constant-syntax">80</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">IXFigures::index_all</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">figures_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="plain-syntax"> </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bf</span><span class="plain-syntax">; </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</span><span class="plain-syntax"> = </span><span class="identifier-syntax">global_compilation_settings</span><span class="plain-syntax">.</span><span class="identifier-syntax">index_figure_thumbnails</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">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) < </span><span class="constant-syntax">2</span><span class="plain-syntax">) { </span><span class="comment-syntax"> cover art always creates 1</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"There are no figures, or illustrations, in this project."</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="reserved-syntax">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of Figures</b>"</span><span class="plain-syntax">); </span><span class="identifier-syntax">HTML_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">);</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">count_of_displayed_figures</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">bf</span><span class="plain-syntax">, </span><span class="identifier-syntax">figures_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">bf</span><span class="plain-syntax">-></span><span class="identifier-syntax">figure_number</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">TEMPORARY_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</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="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">height</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</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">FIGURE_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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><span class="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"JPEG"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ImageFiles::get_JPEG_dimensions</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_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">rv</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">FIGURE_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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><span class="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">FIGURE_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"PNG"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">ImageFiles::get_PNG_dimensions</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">FIGURE_FILE</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">rv</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Unknown image format</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">"br"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%s format: %d (width) by %d (height) pixels"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</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="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</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">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Missing from the Figures folder</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</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_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/image_problem.png\""</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="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count_of_displayed_figures</span><span class="plain-syntax">++ < </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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=\"1\" src=\"file:</span><span class="comment-syntax">%f\" width=\"%d\" height=\"%d\"",</span>
|
||||
<span class="string-syntax"> bf->filename_of_image_file, THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);</span>
|
||||
<span class="string-syntax"> WRITE("</span><span class="plain-syntax">&</span><span class="identifier-syntax">nbsp</span><span class="plain-syntax">;</span><span class="string-syntax">");</span>
|
||||
<span class="string-syntax"> } else {</span>
|
||||
<span class="string-syntax"> HTML_OPEN_WITH("</span><span class="identifier-syntax">div</span><span class="string-syntax">", "</span><span class="identifier-syntax">style</span><span class="plain-syntax">=\</span><span class="string-syntax">"width:%dpx; height:%dpx; border:1px solid; background-color:#6495ed;\""</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">*</span><span class="identifier-syntax">height</span><span class="plain-syntax">/</span><span class="identifier-syntax">width</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_CLOSE</span><span class="plain-syntax">(</span><span class="string-syntax">"div"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::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="element-syntax">name</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">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>
|
||||
<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>
|
||||
<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">"%SFilename: \"%S\" - resource number %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line2</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">figure_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">count_of_displayed_figures</span><span class="plain-syntax"> > </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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">"(Only the first %d thumbnails have been shown here, "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"to avoid Inform taking up too much memory. If you'd like to "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"see more, set 'Use index figure thumbnails of at least %d.', or "</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"whatever number you want to wait for.)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">MAX_INDEXED_FIGURES</span><span class="plain-syntax">, </span><span class="constant-syntax">10</span><span class="plain-syntax">*</span><span class="identifier-syntax">MAX_INDEXED_FIGURES</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="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="2-pi.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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>Scenes</title>
|
||||
<title>Plot Element</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">
|
||||
|
@ -67,12 +67,12 @@ function togglePopup(material_id) {
|
|||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Scenes' generated by Inweb-->
|
||||
<!--Weave of 'Plot Element' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>Scenes</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>Plot Element</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-scn.html#SP2">§2. Table of Scenes</a></li></ul><hr class="tocbar">
|
||||
<ul class="toc"><li><a href="3-pe.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,22 +83,17 @@ 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">IXScenes::index</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::render</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="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-pe.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-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="named-paragraph-container code-font"><a href="3-pe.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-pe.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-pe.html#SP1_4" class="named-paragraph-link"><span class="named-paragraph">Give details of each scene in turn</span><span class="named-paragraph-number">1.4</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="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">IXScenes::index_rules</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUTPUT_STREAM</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_scene</span></a><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-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>.
|
||||
</p>
|
||||
|
@ -110,9 +105,9 @@ seems natural enough to learn in practice.
|
|||
<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="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>
|
||||
<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-pe.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-scn.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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
|
||||
|
@ -129,58 +124,44 @@ about and created but never made use of.)
|
|||
<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><a href="3-pe.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="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><a href="3-pe.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="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><a href="3-pe.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-scn.html#SP1">§1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><a href="3-pe.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-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><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><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><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>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">Rulebooks::std</span><span class="plain-syntax">(</span><span class="identifier-syntax">WHEN_SCENE_BEGINS_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>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP7" class="function-link"><span class="function-syntax">IXRules::index_rules_box</span></a><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">Rulebooks::std</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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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">Give details of each scene in turn</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">
|
||||
|
@ -188,33 +169,33 @@ about and created but never made use of.)
|
|||
<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="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><span class="named-paragraph-container code-font"><a href="3-pe.html#SP1_4_1" class="named-paragraph-link"><span class="named-paragraph">Give details of a specific scene</span><span class="named-paragraph-number">1.4.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-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"
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1">§1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1" class="paragraph-anchor"></a><b>§1.4.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.
|
||||
</p>
|
||||
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Give details of a specific scene</span><span class="named-paragraph-number">1.5.1</span></span><span class="comment-syntax"> =</span>
|
||||
<p class="commentary"><span class="named-paragraph-container code-font"><span class="named-paragraph-defn">Give details of a specific scene</span><span class="named-paragraph-number">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="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="named-paragraph-container code-font"><a href="3-pe.html#SP1_4_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.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">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-pe.html#SP1_4_1_2" class="named-paragraph-link"><span class="named-paragraph">Explain the Entire Game scene</span><span class="named-paragraph-number">1.4.1.2</span></a></span><span class="plain-syntax">;</span>
|
||||
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">for</span><span class="plain-syntax"> (</span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">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-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><span class="named-paragraph-container code-font"><a href="3-pe.html#SP1_4_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.4.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-pe.html#SP1_4_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.4.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-pe.html#SP1_4_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.4.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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4">§1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_1" class="paragraph-anchor"></a><b>§1.4.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.4.1.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -227,8 +208,8 @@ fact, end.
|
|||
<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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1">§1.4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_2" class="paragraph-anchor"></a><b>§1.4.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.4.1.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -238,15 +219,15 @@ 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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1">§1.4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_3" class="paragraph-anchor"></a><b>§1.4.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.4.1.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">rbc</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">rulebook</span><span class="plain-syntax"> *</span><span class="identifier-syntax">rb</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">rb</span><span class="plain-syntax">, </span><span class="identifier-syntax">rulebook</span><span 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_contextually_empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::scene_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</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_contextually_empty</span><span class="plain-syntax">(</span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::scene_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</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">rbc</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::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>During this scene:</i>"</span><span class="plain-syntax">);</span>
|
||||
|
@ -255,12 +236,12 @@ fact, end.
|
|||
<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">2</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>%+W</i>"</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb</span><span class="plain-syntax">-></span><span class="identifier-syntax">primary_name</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><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">, </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::scene_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</span><span class="plain-syntax">), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="identifier-syntax">rb</span><span class="plain-syntax">, </span><span class="string-syntax">""</span><span class="plain-syntax">, </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::scene_context</span></a><span class="plain-syntax">(</span><span class="identifier-syntax">sc</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="plain-syntax"> }</span>
|
||||
</pre>
|
||||
<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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1">§1.4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_4" class="paragraph-anchor"></a><b>§1.4.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.4.1.4</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -269,14 +250,14 @@ fact, end.
|
|||
<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-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="named-paragraph-container code-font"><a href="3-pe.html#SP1_4_1_4_1" class="named-paragraph-link"><span class="named-paragraph">Index the play-begins condition</span><span class="named-paragraph-number">1.4.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-pe.html#SP1_4_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.4.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-pe.html#SP1_4_1_4_3" class="named-paragraph-link"><span class="named-paragraph">Index connections to other scene ends</span><span class="named-paragraph-number">1.4.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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1">§1.4.1</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_4_1" class="paragraph-anchor"></a><b>§1.4.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.4.1.4.1</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -289,8 +270,8 @@ 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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1_4">§1.4.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_4_2" class="paragraph-anchor"></a><b>§1.4.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.4.1.4.2</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -304,8 +285,8 @@ 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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1_4">§1.4.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_4_3" class="paragraph-anchor"></a><b>§1.4.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.4.1.4.3</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -321,8 +302,8 @@ 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-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>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1_4">§1.4.1.4</a>.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP1_4_1_5" class="paragraph-anchor"></a><b>§1.4.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.4.1.5</span></span><span class="comment-syntax"> =</span>
|
||||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
|
@ -331,10 +312,10 @@ fact, end.
|
|||
<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><a href="2-rls.html#SP8" class="function-link"><span class="function-syntax">IXRules::index_rulebook</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">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="plain-syntax"> </span><a href="2-rls.html#SP11" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><span class="plain-syntax">(), &</span><span class="identifier-syntax">ignore_me</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><a href="2-rls.html#SP10" class="function-link"><span class="function-syntax">IXRules::no_rule_context</span></a><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-scn.html#SP1_5_1">§1.5.1</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.html#SP1_4_1">§1.4.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).
|
||||
|
@ -352,19 +333,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">IXScenes::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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">IXScenes::index_from_scene</span></span>:<br/><a href="3-pe.html#SP1_2">§1.2</a>, <a href="3-pe.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-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="named-paragraph-container code-font"><a href="3-pe.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-pe.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="named-paragraph-container code-font"><a href="3-pe.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-pe.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="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><span class="named-paragraph-container code-font"><a href="3-pe.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>
|
||||
|
@ -372,21 +353,21 @@ 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-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="constant-syntax">0</span><span class="plain-syntax">: </span><a href="3-pe.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-pe.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-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="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-pe.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-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><a href="3-pe.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="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><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-pe.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-pe.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-pe.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-scn.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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>
|
||||
|
||||
|
@ -396,7 +377,7 @@ on the initial call when <span class="extract"><span class="extract-syntax">dept
|
|||
<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><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>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-scn.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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>
|
||||
|
||||
|
@ -406,18 +387,18 @@ on the initial call when <span class="extract"><span class="extract-syntax">dept
|
|||
<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-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>
|
||||
<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-pe.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-scn.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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="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-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>
|
||||
<span class="plain-syntax"> </span><a href="3-pe.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-scn.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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
|
||||
|
@ -433,31 +414,31 @@ this one does; then to scenes which begin when this one ends.
|
|||
<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><a href="3-pe.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="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><a href="3-pe.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-scn.html#SP2">§2</a>.</li></ul>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="3-pe.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">IXScenes::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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">IXScenes::scene_icon</span></span>:<br/><a href="3-pe.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-pe.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">IXScenes::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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">IXScenes::scene_icon_append</span></span>:<br/><a href="3-pe.html#SP2_3">§2.3</a>, <a href="3-pe.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-pe.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">IXScenes::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">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="reserved-syntax">void</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">IXScenes::scene_icon_legend</span></span>:<br/><a href="3-pe.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-pe.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">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>
|
||||
|
@ -470,7 +451,7 @@ rest in ascending alphabetical order.
|
|||
</p>
|
||||
|
||||
<pre class="displayed-code all-displayed-code code-font">
|
||||
<span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">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="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="function-syntax">IXScenes::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">IXScenes::compare_scenes</span></span>:<br/><a href="3-pe.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>
|
||||
|
@ -481,7 +462,7 @@ rest in ascending alphabetical order.
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-tm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-act.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-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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">pe</li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-act.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
|
@ -76,7 +76,7 @@
|
|||
<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-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
<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-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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,192 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Sound Effects</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="../runtime-module/index.html">runtime</a></li>
|
||||
<li><a href="../if-module/index.html">if</a></li>
|
||||
<li><a href="../multimedia-module/index.html">multimedia</a></li>
|
||||
<li><a href="index.html"><span class="selectedlink">index</span></a></li>
|
||||
</ul><h2>Inter Modules</h2><ul>
|
||||
<li><a href="../bytecode-module/index.html">bytecode</a></li>
|
||||
<li><a href="../building-module/index.html">building</a></li>
|
||||
<li><a href="../codegen-module/index.html">codegen</a></li>
|
||||
</ul><h2>Services</h2><ul>
|
||||
<li><a href="../arch-module/index.html">arch</a></li>
|
||||
<li><a href="../calculus-module/index.html">calculus</a></li>
|
||||
<li><a href="../html-module/index.html">html</a></li>
|
||||
<li><a href="../inflections-module/index.html">inflections</a></li>
|
||||
<li><a href="../kinds-module/index.html">kinds</a></li>
|
||||
<li><a href="../linguistics-module/index.html">linguistics</a></li>
|
||||
<li><a href="../problems-module/index.html">problems</a></li>
|
||||
<li><a href="../syntax-module/index.html">syntax</a></li>
|
||||
<li><a href="../words-module/index.html">words</a></li>
|
||||
<li><a href="../../../inweb/docs/foundation-module/index.html">foundation</a></li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
<main role="main">
|
||||
<!--Weave of 'Sound Effects' generated by Inweb-->
|
||||
<div class="breadcrumbs">
|
||||
<ul class="crumbs"><li><a href="../index.html">Home</a></li><li><a href="../compiler.html">Inform7</a></li><li><a href="index.html">index</a></li><li><a href="index.html#3">Chapter 3: Indexing for Plugins</a></li><li><b>Sound Effects</b></li></ul></div>
|
||||
<p class="purpose">To produce the index of sound effects.</p>
|
||||
|
||||
<ul class="toc"><li><a href="3-se.html#SP1">§1. Sounds Index</a></li></ul><hr class="tocbar">
|
||||
|
||||
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>§1. Sounds Index. </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">IXSounds::index_all</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">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">PluginManager::active</span><span class="plain-syntax">(</span><span class="identifier-syntax">sounds_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="plain-syntax"> </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax"> *</span><span class="identifier-syntax">bs</span><span class="plain-syntax">; </span><span class="reserved-syntax">FILE</span><span class="plain-syntax"> *</span><span class="identifier-syntax">SOUND_FILE</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">line2</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">rv</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">NUMBER_CREATED</span><span class="plain-syntax">(</span><span class="identifier-syntax">sounds_data</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_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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"There are no sound effects in this project."</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">return</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_OPEN</span><span class="plain-syntax">(</span><span class="string-syntax">"p"</span><span class="plain-syntax">); </span><span class="identifier-syntax">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"<b>List of Sounds</b>"</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">WRITE</span><span class="plain-syntax">(</span><span class="string-syntax">"\n"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::begin_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="string-syntax">"#ffffff"</span><span class="plain-syntax">, </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">LOOP_OVER</span><span class="plain-syntax">(</span><span class="identifier-syntax">bs</span><span class="plain-syntax">, </span><span class="identifier-syntax">sounds_data</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">duration</span><span class="plain-syntax">, </span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">, </span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, </span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">, </span><span class="identifier-syntax">fsize</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">midi_version</span><span class="plain-syntax"> = </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_tracks</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">preview</span><span class="plain-syntax"> = </span><span class="identifier-syntax">TRUE</span><span class="plain-syntax">, </span><span class="identifier-syntax">waveform_style</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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">char</span><span class="plain-syntax"> *</span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"AIFF"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_AIFF_duration</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, &</span><span class="identifier-syntax">duration</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fseek</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, </span><span class="constant-syntax">0</span><span class="plain-syntax">, </span><span class="identifier-syntax">SEEK_END</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fsize</span><span class="plain-syntax"> = (</span><span class="reserved-syntax">unsigned</span><span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax">) (</span><span class="identifier-syntax">ftell</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">));</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"Ogg Vorbis"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preview</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">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_OggVorbis_duration</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">, &</span><span class="identifier-syntax">duration</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">, &</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</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">rv</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">SOUND_FILE</span><span class="plain-syntax"> = </span><span class="identifier-syntax">Filenames::fopen</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="string-syntax">"rb"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">waveform_style</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">real_format</span><span class="plain-syntax"> = </span><span class="string-syntax">"MIDI"</span><span class="plain-syntax">;</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">preview</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">rv</span><span class="plain-syntax"> = </span><span class="identifier-syntax">SoundFiles::get_MIDI_information</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> &</span><span class="identifier-syntax">midi_version</span><span class="plain-syntax">, &</span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fclose</span><span class="plain-syntax">(</span><span class="identifier-syntax">SOUND_FILE</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">rv</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Unknown sound format</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">"br"</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">waveform_style</span><span class="plain-syntax"> == </span><span class="identifier-syntax">FALSE</span><span class="plain-syntax">) {</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"Type %d %s file with %d track%s"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">midi_version</span><span class="plain-syntax">, </span><span class="identifier-syntax">real_format</span><span class="plain-syntax">, </span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">no_tracks</span><span class="plain-syntax"> == </span><span class="constant-syntax">1</span><span class="plain-syntax">)?</span><span class="string-syntax">""</span><span class="plain-syntax">:</span><span class="string-syntax">"s"</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>Warning: not officially supported in glulx yet</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> {</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">min</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">/6000), </span><span class="identifier-syntax">sec</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">%6000)/100,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">centisec</span><span class="plain-syntax"> = (</span><span class="identifier-syntax">duration</span><span class="plain-syntax">%100);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d.%01dKB %s file: duration "</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">fsize</span><span class="plain-syntax">/1024, (</span><span class="identifier-syntax">fsize</span><span class="plain-syntax">%1024)/102, </span><span class="identifier-syntax">real_format</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">min</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d minutes "</span><span class="plain-syntax">, </span><span class="identifier-syntax">min</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> ((</span><span class="identifier-syntax">sec</span><span class="plain-syntax"> > </span><span class="constant-syntax">0</span><span class="plain-syntax">) || (</span><span class="identifier-syntax">centisec</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">centisec</span><span class="plain-syntax"> == </span><span class="constant-syntax">0</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d seconds"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">else</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"%d.%02d seconds"</span><span class="plain-syntax">, </span><span class="identifier-syntax">sec</span><span class="plain-syntax">, </span><span class="identifier-syntax">centisec</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> } </span><span class="reserved-syntax">else</span><span class="plain-syntax"> </span><span class="identifier-syntax">WRITE_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"exactly"</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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"Sampled as %d.%01dkHz %s (%d.%01d kilobits/sec)"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">/1000, (</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">%1000)/100,</span>
|
||||
<span class="plain-syntax"> (</span><span class="identifier-syntax">pChannels</span><span class="plain-syntax">==1)?</span><span class="string-syntax">"Mono"</span><span class="plain-syntax">:</span><span class="string-syntax">"Stereo"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">pBitsPerSecond</span><span class="plain-syntax">/1000, (</span><span class="identifier-syntax">pSampleRate</span><span class="plain-syntax">%1000)/100);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_TAG</span><span class="plain-syntax">(</span><span class="string-syntax">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<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_TO</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</span><span class="plain-syntax">, </span><span class="string-syntax">"<i>Missing from the Sounds folder</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">"br"</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::first_html_column</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">, </span><span class="constant-syntax">THUMBNAIL_WIDTH</span><span class="plain-syntax">+10);</span>
|
||||
<span class="plain-syntax"> </span><span class="reserved-syntax">if</span><span class="plain-syntax"> (</span><span class="identifier-syntax">rv</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_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/image_problem.png\""</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">preview</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">"embed"</span><span class="plain-syntax">,</span>
|
||||
<span class="plain-syntax"> </span><span class="string-syntax">"src=\"file:</span><span class="comment-syntax">%f\" width=\"%d\" height=\"64\" "</span>
|
||||
<span class="string-syntax"> "</span><span class="identifier-syntax">autostart</span><span class="plain-syntax">=\</span><span class="string-syntax">"false\" volume=\"50%%\" mastersound"</span><span class="plain-syntax">,</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="constant-syntax">THUMBNAIL_WIDTH</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">"embed"</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">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/sound_okay.png\""</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">"&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="element-syntax">name</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">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>
|
||||
<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">"%SFilename: \"%S\" - resource number %d"</span><span class="plain-syntax">, </span><span class="identifier-syntax">line2</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">sound_number</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">rel</span><span class="plain-syntax">)</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_row</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> }</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML::end_html_table</span><span class="plain-syntax">(</span><span class="identifier-syntax">OUT</span><span class="plain-syntax">);</span>
|
||||
<span class="plain-syntax"> </span><span class="identifier-syntax">HTML_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">DISCARD_TEXT</span><span class="plain-syntax">(</span><span class="identifier-syntax">line2</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-fgr.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -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-ef.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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">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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-fe.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
|
|
|
@ -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-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
<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-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</a></li><li class="progresschapter"><a href="4-sg.html">4</a></li><li class="progressnext"><a href="3-pe.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-li.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-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="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
<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-li.html">2</a></li><li class="progresscurrentchapter">3</li><li class="progresssection"><a href="3-fe.html">fe</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-pe.html">pe</a></li><li class="progresssection"><a href="3-act.html">act</a></li><li class="progresssection"><a href="3-ci.html">ci</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>
|
||||
|
|
|
@ -127,7 +127,7 @@ values inherited by sub-objects.
|
|||
<span class="plain-syntax"> </span><span class="reserved-syntax">int</span><span class="plain-syntax"> </span><span class="identifier-syntax">numeric_value</span><span class="plain-syntax">; </span><span class="comment-syntax"> or numeric value, if appropriate to this type</span>
|
||||
<span class="plain-syntax">} </span><span class="reserved-syntax">plotting_parameter</span><span class="plain-syntax">;</span>
|
||||
</pre>
|
||||
<ul class="endnotetexts"><li>The structure plotting_parameter is accessed in 2/ie, 2/ins, 2/vrb, 2/prp, 2/inf, 2/rls, 2/act, 2/pi, 3/fgr, 3/se, 3/ef and here.</li></ul>
|
||||
<ul class="endnotetexts"><li>The structure plotting_parameter is accessed in 2/ie, 2/ins, 2/vrb, 2/prp, 2/inf, 2/rls, 2/act, 2/pi, 2/te, 3/fe and here.</li></ul>
|
||||
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>§3. </b>A set of variables associated with any map object is called a "scope".
|
||||
As implied above, the global scope is special: it contains the default
|
||||
settings passed down to all lower scopes.
|
||||
|
@ -1633,7 +1633,7 @@ are written as triples of floating point numbers \(0 \leq b \leq 1\).
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-hm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresssection"><a href="4-hm.html">hm</a></li><li class="progresscurrent">em</li><li class="progressnextoff">❯</li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-hm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresssection"><a href="4-hm.html">hm</a></li><li class="progresscurrent">em</li><li class="progressnextoff">❯</li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -1360,7 +1360,7 @@ that nothing is shown if all of the rooms are outside of regions.
|
|||
</pre>
|
||||
<ul class="endnotetexts"><li>This code is used in <a href="4-hm.html#SP13">§13</a>.</li></ul>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-sm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresscurrent">hm</li><li class="progresssection"><a href="4-em.html">em</a></li><li class="progressnext"><a href="4-em.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-sm.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresssection"><a href="4-sm.html">sm</a></li><li class="progresscurrent">hm</li><li class="progresssection"><a href="4-em.html">em</a></li><li class="progressnext"><a href="4-em.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -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-ci.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.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>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="3-ci.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fe.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>
|
||||
|
|
|
@ -3353,7 +3353,7 @@ rooms:
|
|||
<span class="plain-syntax">}</span>
|
||||
</pre>
|
||||
<nav role="progress"><div class="progresscontainer">
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-sg.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fgr.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresscurrent">sm</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-hm.html">❯</a></li></ul></div>
|
||||
<ul class="progressbar"><li class="progressprev"><a href="4-sg.html">❮</a></li><li class="progresschapter"><a href="1-im.html">1</a></li><li class="progresschapter"><a href="2-li.html">2</a></li><li class="progresschapter"><a href="3-fe.html">3</a></li><li class="progresscurrentchapter">4</li><li class="progresssection"><a href="4-sg.html">sg</a></li><li class="progresscurrent">sm</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-hm.html">❯</a></li></ul></div>
|
||||
</nav><!--End of weave-->
|
||||
|
||||
</main>
|
||||
|
|
|
@ -124,8 +124,8 @@
|
|||
<span class="sectionpurpose">To index properties.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-rlt.html">
|
||||
<spon class="sectiontitle">Relations</span></a> -
|
||||
<p class="sectionentry"><a href="2-re.html">
|
||||
<spon class="sectiontitle">Relations Element</span></a> -
|
||||
<span class="sectionpurpose">To index relations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -148,6 +148,31 @@
|
|||
<spon class="sectiontitle">Phrasebook Index</span></a> -
|
||||
<span class="sectionpurpose">To compile most of the HTML page for the Phrasebook index.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-te.html">
|
||||
<spon class="sectiontitle">Tables Element</span></a> -
|
||||
<span class="sectionpurpose">To index tables.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-ie2.html">
|
||||
<spon class="sectiontitle">Innards Element</span></a> -
|
||||
<span class="sectionpurpose">To index tables.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-ee.html">
|
||||
<spon class="sectiontitle">Events Element</span></a> -
|
||||
<span class="sectionpurpose">To index relations.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-rfse.html">
|
||||
<spon class="sectiontitle">Rules for Scenes Element</span></a> -
|
||||
<span class="sectionpurpose">The RS element.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="2-be.html">
|
||||
<spon class="sectiontitle">Behaviour Element</span></a> -
|
||||
<span class="sectionpurpose">To index relations.</span></p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -155,20 +180,10 @@
|
|||
<span class="chaptertitle">Chapter 3: Indexing for Plugins</span></p>
|
||||
<ul class="sectionlist">
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-fgr.html">
|
||||
<spon class="sectiontitle">Figures</span></a> -
|
||||
<p class="sectionentry"><a href="3-fe.html">
|
||||
<spon class="sectiontitle">Figures Element</span></a> -
|
||||
<span class="sectionpurpose">To produce the index of figures.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-se.html">
|
||||
<spon class="sectiontitle">Sound Effects</span></a> -
|
||||
<span class="sectionpurpose">To produce the index of sound effects.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-ef.html">
|
||||
<spon class="sectiontitle">External Files</span></a> -
|
||||
<span class="sectionpurpose">To produce the index of external files.</span></p>
|
||||
</li>
|
||||
<li>
|
||||
<p class="sectionentry"><a href="3-spt.html">
|
||||
<spon class="sectiontitle">Spatial</span></a> -
|
||||
|
@ -195,8 +210,8 @@
|
|||
<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> -
|
||||
<p class="sectionentry"><a href="3-pe.html">
|
||||
<spon class="sectiontitle">Plot Element</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>
|
||||
<li>
|
||||
|
|
|
@ -1,24 +1,25 @@
|
|||
100.0% in inform7 run
|
||||
53.7% in compilation to Inter
|
||||
39.3% in //Sequence::undertake_queued_tasks//
|
||||
4.4% in //MajorNodes::pre_pass//
|
||||
3.2% in //MajorNodes::pass_1//
|
||||
1.6% in //ImperativeDefinitions::assess_all//
|
||||
53.6% in compilation to Inter
|
||||
39.5% in //Sequence::undertake_queued_tasks//
|
||||
4.1% in //MajorNodes::pre_pass//
|
||||
3.1% in //MajorNodes::pass_1//
|
||||
1.7% in //ImperativeDefinitions::assess_all//
|
||||
0.5% in //ImperativeDefinitions::compile_first_block//
|
||||
0.5% in //MajorNodes::pass_2//
|
||||
0.5% in //RTKindConstructors::compile//
|
||||
0.5% in //World::stage_V//
|
||||
0.3% in //Sequence::undertake_queued_tasks//
|
||||
0.1% in //InferenceSubjects::emit_all//
|
||||
0.1% in //RTKindConstructors::compile_permissions//
|
||||
0.1% in //Task::make_built_in_kind_constructors//
|
||||
0.1% in //World::stages_II_and_III//
|
||||
2.1% not specifically accounted for
|
||||
1.9% not specifically accounted for
|
||||
43.9% in running Inter pipeline
|
||||
11.2% in step preparation
|
||||
11.0% in inter step 7/14: consolidate-text
|
||||
9.6% in inter step 2/14: link
|
||||
7.8% in inter step 14/14: generate inform6 -> auto.inf
|
||||
0.7% in inter step 10/14: make-identifiers-unique
|
||||
11.1% in inter step 7/14: consolidate-text
|
||||
10.9% in step preparation
|
||||
9.5% in inter step 2/14: link
|
||||
7.4% in inter step 14/14: generate inform6 -> auto.inf
|
||||
0.8% in inter step 10/14: make-identifiers-unique
|
||||
0.3% in inter step 11/14: reconcile-verbs
|
||||
0.3% in inter step 13/14: eliminate-redundant-operations
|
||||
0.1% in inter step 12/14: eliminate-redundant-labels
|
||||
|
@ -27,6 +28,6 @@
|
|||
0.1% in inter step 6/14: assimilate
|
||||
0.1% in inter step 8/14: resolve-external-symbols
|
||||
0.1% in inter step 9/14: inspect-plugs
|
||||
1.8% not specifically accounted for
|
||||
1.9% in supervisor
|
||||
2.1% not specifically accounted for
|
||||
2.0% in supervisor
|
||||
0.4% not specifically accounted for
|
||||
|
|
|
@ -1288,136 +1288,6 @@ void Tables::splice_table_row(table *table_to, table *table_from, int row_to, in
|
|||
}
|
||||
}
|
||||
|
||||
@h Indexing.
|
||||
Tables inside extensions are often used just for the storage needed to manage
|
||||
back-of-house algorithms, so to speak, and they aren't intended for the end
|
||||
user to poke around with; that's certainly true of the tables in the Standard
|
||||
Rules, which of course are always present. So these are hidden by default.
|
||||
|
||||
=
|
||||
void Tables::index(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p");
|
||||
int m = Tables::index_tables_in(OUT, NULL, 0);
|
||||
HTML_CLOSE("p");
|
||||
HTML_OPEN("p");
|
||||
Index::extra_link(OUT, 2);
|
||||
if (m > 0) WRITE("Show tables inside extensions too");
|
||||
else WRITE("Show tables inside extensions (there are none in the main text)");
|
||||
HTML_CLOSE("p");
|
||||
Index::extra_div_open(OUT, 2, 1, "e0e0e0");
|
||||
inform_extension *E; int efc = 0;
|
||||
LOOP_OVER(E, inform_extension) Tables::index_tables_in(OUT, E, efc++);
|
||||
Index::extra_div_close(OUT, "e0e0e0");
|
||||
}
|
||||
|
||||
@ This tabulates tables within a given extension, returning the number listed,
|
||||
and does nothing at all if that number is 0.
|
||||
|
||||
=
|
||||
int Tables::index_tables_in(OUTPUT_STREAM, inform_extension *E, int efc) {
|
||||
int tc = 0; table *t;
|
||||
LOOP_OVER(t, table) if (Tables::table_within(t, E)) tc++;
|
||||
if (tc > 0) {
|
||||
if (E) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>%S</i>", E->as_copy->edition->work->title);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
HTML::begin_plain_html_table(OUT);
|
||||
LOOP_OVER(t, table)
|
||||
if (Tables::table_within(t, E))
|
||||
@<Index this table@>;
|
||||
HTML::end_html_table(OUT);
|
||||
}
|
||||
return tc;
|
||||
}
|
||||
|
||||
@ The following probably ought to use a multiplication sign rather than a
|
||||
Helvetica-style lower case "x", but life is full of compromises.
|
||||
|
||||
@<Index this table@> =
|
||||
HTML::first_html_column_spaced(OUT, 0);
|
||||
WRITE("<b>%+W</b>", Node::get_text(t->headline_fragment));
|
||||
table_contribution *tc; int ntc = 0;
|
||||
for (tc = t->table_created_at; tc; tc = tc->next) {
|
||||
if (ntc++ > 0) WRITE(" +");
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(tc->source_table)));
|
||||
}
|
||||
HTML::next_html_column_spaced(OUT, 0);
|
||||
int rc = Tables::get_no_rows(t);
|
||||
WRITE("<i>");
|
||||
HTML_OPEN_WITH("span", "class=\"smaller\"");
|
||||
if (t->first_column_by_definition) {
|
||||
WRITE("%d definition%s", rc,
|
||||
(rc == 1)?"":"s");
|
||||
} else {
|
||||
WRITE("%d column%s x %d row%s",
|
||||
t->no_columns, (t->no_columns == 1)?"":"s",
|
||||
rc, (rc == 1)?"":"s");
|
||||
}
|
||||
if (t->blank_rows > 0) {
|
||||
WRITE(" (%d blank", t->blank_rows);
|
||||
if (Wordings::nonempty(t->blank_rows_for_each_text))
|
||||
WRITE(", one for each %+W", t->blank_rows_for_each_text);
|
||||
WRITE(")");
|
||||
}
|
||||
HTML_CLOSE("span");
|
||||
WRITE("</i>");
|
||||
HTML::end_html_row(OUT);
|
||||
int col;
|
||||
for (col = 0; col < t->no_columns; col++) {
|
||||
HTML::first_html_column(OUT, 0);
|
||||
WRITE(" col %d: ", col+1);
|
||||
wording CW = Nouns::nominative_singular(t->columns[col].column_identity->name);
|
||||
if ((t->first_column_by_definition) && (col == 0)) {
|
||||
parse_node *PN = t->where_used_to_define;
|
||||
WRITE("%+W", Node::get_text(PN));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(PN)));
|
||||
} else {
|
||||
if (t->first_column_by_definition) WRITE("<i>sets</i> ");
|
||||
WRITE("%+W ", CW);
|
||||
TEMPORARY_TEXT(TEMP)
|
||||
WRITE_TO(TEMP, "%+W", CW);
|
||||
if (t->first_column_by_definition == FALSE) WRITE_TO(TEMP, " entry");
|
||||
PasteButtons::paste_text(OUT, TEMP);
|
||||
DISCARD_TEXT(TEMP)
|
||||
}
|
||||
HTML::next_html_column(OUT, 0);
|
||||
if ((t->first_column_by_definition) && (col == 0)) {
|
||||
parse_node *cell;
|
||||
int row;
|
||||
for (row = 1, cell = t->columns[0].entries->down; cell; cell = cell->next, row++) {
|
||||
if (row > 1) WRITE(", ");
|
||||
WRITE("%+W", Node::get_text(cell));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(cell)));
|
||||
}
|
||||
} else if (t->first_column_by_definition) {
|
||||
Kinds::Textual::write(OUT,
|
||||
Tables::Columns::get_kind(
|
||||
t->columns[col].column_identity));
|
||||
WRITE(" property");
|
||||
} else {
|
||||
WRITE("of ");
|
||||
Kinds::Textual::write_plural(OUT,
|
||||
Tables::Columns::get_kind(
|
||||
t->columns[col].column_identity));
|
||||
}
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
|
||||
@ The following laboriously tests whether a table is defined within a
|
||||
given extension:
|
||||
|
||||
=
|
||||
int Tables::table_within(table *t, inform_extension *E) {
|
||||
if (t->amendment_of) return FALSE;
|
||||
heading *at_heading =
|
||||
Headings::of_wording(Node::get_text(t->table_created_at->source_table));
|
||||
inform_extension *at_E = Headings::get_extension_containing(at_heading);
|
||||
if (E == at_E) return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ This is called when a table is being asked to define objects (or kinds).
|
||||
|
||||
=
|
||||
|
|
|
@ -90,58 +90,3 @@ void IXActivities::index_cross_references(OUTPUT_STREAM, activity *av) {
|
|||
}
|
||||
}
|
||||
|
||||
@h Describing the current VM.
|
||||
|
||||
=
|
||||
void IXActivities::innards(OUTPUT_STREAM, target_vm *VM) {
|
||||
IXActivities::index_VM(OUT, VM);
|
||||
NewUseOptions::index(OUT);
|
||||
HTML_OPEN("p");
|
||||
Index::extra_link(OUT, 3);
|
||||
WRITE("See some technicalities for Inform maintainers only");
|
||||
HTML_CLOSE("p");
|
||||
Index::extra_div_open(OUT, 3, 2, "e0e0e0");
|
||||
IXActivities::show_configuration(OUT);
|
||||
@<Add some paste buttons for the debugging log@>;
|
||||
Index::extra_div_close(OUT, "e0e0e0");
|
||||
}
|
||||
|
||||
@ The index provides some hidden paste icons for these:
|
||||
|
||||
@<Add some paste buttons for the debugging log@> =
|
||||
HTML_OPEN("p");
|
||||
WRITE("Debugging log:");
|
||||
HTML_CLOSE("p");
|
||||
HTML_OPEN("p");
|
||||
for (int i=0; i<NO_DEFINED_DA_VALUES; i++) {
|
||||
debugging_aspect *da = &(the_debugging_aspects[i]);
|
||||
if (Str::len(da->unhyphenated_name) > 0) {
|
||||
TEMPORARY_TEXT(is)
|
||||
WRITE_TO(is, "Include %S in the debugging log.", da->unhyphenated_name);
|
||||
PasteButtons::paste_text(OUT, is);
|
||||
WRITE(" %S", is);
|
||||
DISCARD_TEXT(is)
|
||||
HTML_TAG("br");
|
||||
}
|
||||
}
|
||||
HTML_CLOSE("p");
|
||||
|
||||
@ =
|
||||
void IXActivities::index_VM(OUTPUT_STREAM, target_vm *VM) {
|
||||
if (VM == NULL) internal_error("target VM not set yet");
|
||||
Index::anchor(OUT, I"STORYFILE");
|
||||
HTML_OPEN("p"); WRITE("Story file format: ");
|
||||
ExtensionIndex::plot_icon(OUT, VM);
|
||||
TargetVMs::write(OUT, VM);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
@ =
|
||||
void IXActivities::show_configuration(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p");
|
||||
Index::anchor(OUT, I"CONFIG");
|
||||
WRITE("Inform language definition:\n");
|
||||
PluginManager::list_plugins(OUT, "Included", TRUE);
|
||||
PluginManager::list_plugins(OUT, "Excluded", FALSE);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
|
33
inform7/index-module/Chapter 2/Behaviour Element.w
Normal file
33
inform7/index-module/Chapter 2/Behaviour Element.w
Normal file
|
@ -0,0 +1,33 @@
|
|||
[IXBehaviour::] Behaviour Element.
|
||||
|
||||
To index relations.
|
||||
|
||||
@ A brief table of relations appears on the Phrasebook Index page.
|
||||
|
||||
=
|
||||
void IXBehaviour::render(OUTPUT_STREAM) {
|
||||
named_action_pattern *nap;
|
||||
int num_naps = NUMBER_CREATED(named_action_pattern);
|
||||
|
||||
if (num_naps == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("No names for kinds of action have yet been defined.");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
LOOP_OVER(nap, named_action_pattern) {
|
||||
HTML_OPEN("p"); WRITE("<b>%+W</b>", Nouns::nominative_singular(nap->as_noun));
|
||||
Index::link(OUT, Wordings::first_wn(nap->text_of_declaration));
|
||||
HTML_TAG("br");
|
||||
WRITE(" <i>defined as any of the following acts:</i>\n");
|
||||
named_action_pattern_entry *nape;
|
||||
LOOP_OVER_LINKED_LIST(nape, named_action_pattern_entry, nap->patterns) {
|
||||
action_pattern *ap = nape->behaviour;
|
||||
HTML_TAG("br");
|
||||
WRITE(" %+W", ap->text_of_pattern);
|
||||
Index::link(OUT, Wordings::first_wn(ap->text_of_pattern));
|
||||
}
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
62
inform7/index-module/Chapter 2/Events Element.w
Normal file
62
inform7/index-module/Chapter 2/Events Element.w
Normal file
|
@ -0,0 +1,62 @@
|
|||
[IXEvents::] Events Element.
|
||||
|
||||
To index relations.
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void IXEvents::render(OUTPUT_STREAM) {
|
||||
int when_count = 0, tt_count = 0;
|
||||
@<Index events with no specific time@>;
|
||||
@<Index timetabled events@>;
|
||||
if ((when_count == 0) && (tt_count == 0)) {
|
||||
HTML_OPEN("p"); WRITE("<i>None.</i>"); HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@<Index events with no specific time@> =
|
||||
id_body *idb;
|
||||
LOOP_OVER(idb, id_body) {
|
||||
int t = TimedRules::get_timing_of_event(idb->head_of_defn);
|
||||
if (t == NO_FIXED_TIME) {
|
||||
if (when_count == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>Events with no specific time</i>");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
when_count++;
|
||||
HTML_OPEN_WITH("p", "class=\"tightin2\"");
|
||||
ImperativeDefinitions::index_preamble(OUT, idb->head_of_defn);
|
||||
if ((ImperativeDefinitions::body_at(idb)) &&
|
||||
(Wordings::nonempty(Node::get_text(ImperativeDefinitions::body_at(idb)))))
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(ImperativeDefinitions::body_at(idb))));
|
||||
WRITE(" (where triggered: ");
|
||||
linked_list *L = TimedRules::get_uses_as_event(idb->head_of_defn);
|
||||
parse_node *p;
|
||||
LOOP_OVER_LINKED_LIST(p, parse_node, L)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(p)));
|
||||
WRITE(")");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@<Index timetabled events@> =
|
||||
id_body *idb;
|
||||
LOOP_OVER(idb, id_body) {
|
||||
int t = TimedRules::get_timing_of_event(idb->head_of_defn);
|
||||
if (t >= 0) { /* i.e., an actual time of day in minutes since midnight */
|
||||
if (tt_count == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>Timetable</i>");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
tt_count++;
|
||||
HTML_OPEN_WITH("p", "class=\"in2\"");
|
||||
ImperativeDefinitions::index_preamble(OUT, idb->head_of_defn);
|
||||
if ((ImperativeDefinitions::body_at(idb)) &&
|
||||
(Wordings::nonempty(Node::get_text(ImperativeDefinitions::body_at(idb)))))
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(ImperativeDefinitions::body_at(idb))));
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
59
inform7/index-module/Chapter 2/Innards Element.w
Normal file
59
inform7/index-module/Chapter 2/Innards Element.w
Normal file
|
@ -0,0 +1,59 @@
|
|||
[IXInnards::] Innards Element.
|
||||
|
||||
To index tables.
|
||||
|
||||
@h Describing the current VM.
|
||||
|
||||
=
|
||||
void IXInnards::render(OUTPUT_STREAM, target_vm *VM) {
|
||||
IXInnards::index_VM(OUT, VM);
|
||||
NewUseOptions::index(OUT);
|
||||
HTML_OPEN("p");
|
||||
Index::extra_link(OUT, 3);
|
||||
WRITE("See some technicalities for Inform maintainers only");
|
||||
HTML_CLOSE("p");
|
||||
Index::extra_div_open(OUT, 3, 2, "e0e0e0");
|
||||
IXInnards::show_configuration(OUT);
|
||||
@<Add some paste buttons for the debugging log@>;
|
||||
Index::extra_div_close(OUT, "e0e0e0");
|
||||
}
|
||||
|
||||
@ The index provides some hidden paste icons for these:
|
||||
|
||||
@<Add some paste buttons for the debugging log@> =
|
||||
HTML_OPEN("p");
|
||||
WRITE("Debugging log:");
|
||||
HTML_CLOSE("p");
|
||||
HTML_OPEN("p");
|
||||
for (int i=0; i<NO_DEFINED_DA_VALUES; i++) {
|
||||
debugging_aspect *da = &(the_debugging_aspects[i]);
|
||||
if (Str::len(da->unhyphenated_name) > 0) {
|
||||
TEMPORARY_TEXT(is)
|
||||
WRITE_TO(is, "Include %S in the debugging log.", da->unhyphenated_name);
|
||||
PasteButtons::paste_text(OUT, is);
|
||||
WRITE(" %S", is);
|
||||
DISCARD_TEXT(is)
|
||||
HTML_TAG("br");
|
||||
}
|
||||
}
|
||||
HTML_CLOSE("p");
|
||||
|
||||
@ =
|
||||
void IXInnards::index_VM(OUTPUT_STREAM, target_vm *VM) {
|
||||
if (VM == NULL) internal_error("target VM not set yet");
|
||||
Index::anchor(OUT, I"STORYFILE");
|
||||
HTML_OPEN("p"); WRITE("Story file format: ");
|
||||
ExtensionIndex::plot_icon(OUT, VM);
|
||||
TargetVMs::write(OUT, VM);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
@ =
|
||||
void IXInnards::show_configuration(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p");
|
||||
Index::anchor(OUT, I"CONFIG");
|
||||
WRITE("Inform language definition:\n");
|
||||
PluginManager::list_plugins(OUT, "Included", TRUE);
|
||||
PluginManager::list_plugins(OUT, "Excluded", FALSE);
|
||||
HTML_CLOSE("p");
|
||||
}
|
|
@ -523,7 +523,7 @@ void IndexLexicon::tabulate_meanings(OUTPUT_STREAM, index_lexicon_entry *lex) {
|
|||
if (vu->where_vu_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(vu->where_vu_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::base_form(VerbUsages::get_verb(vu)));
|
||||
if (bp) IXRelations::index_for_verbs(OUT, bp);
|
||||
if (bp) IndexLexicon::show_relation(OUT, bp);
|
||||
return;
|
||||
}
|
||||
preposition *prep;
|
||||
|
@ -532,7 +532,20 @@ void IndexLexicon::tabulate_meanings(OUTPUT_STREAM, index_lexicon_entry *lex) {
|
|||
if (prep->where_prep_created)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(prep->where_prep_created)));
|
||||
binary_predicate *bp = VerbMeanings::get_regular_meaning_of_form(Verbs::find_form(copular_verb, prep, NULL));
|
||||
if (bp) IXRelations::index_for_verbs(OUT, bp);
|
||||
if (bp) IndexLexicon::show_relation(OUT, bp);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void IndexLexicon::show_relation(OUTPUT_STREAM, binary_predicate *bp) {
|
||||
WRITE(" ... <i>");
|
||||
if (bp == NULL) WRITE("(a meaning internal to Inform)");
|
||||
else {
|
||||
if (bp->right_way_round == FALSE) {
|
||||
bp = bp->reversal;
|
||||
WRITE("reversed ");
|
||||
}
|
||||
WordAssemblages::index(OUT, &(bp->relation_name));
|
||||
}
|
||||
WRITE("</i>");
|
||||
}
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
[IXRelations::] Relations.
|
||||
[IXRelations::] Relations Element.
|
||||
|
||||
To index relations.
|
||||
|
||||
@ A brief table of relations appears on the Phrasebook Index page.
|
||||
|
||||
=
|
||||
void IXRelations::index_table(OUTPUT_STREAM) {
|
||||
void IXRelations::render(OUTPUT_STREAM) {
|
||||
binary_predicate *bp;
|
||||
HTML_OPEN("p");
|
||||
HTML::begin_plain_html_table(OUT);
|
||||
|
@ -33,19 +33,3 @@ void IXRelations::index_table(OUTPUT_STREAM) {
|
|||
HTML::end_html_table(OUT);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
@ And a briefer note still for the table of verbs.
|
||||
|
||||
=
|
||||
void IXRelations::index_for_verbs(OUTPUT_STREAM, binary_predicate *bp) {
|
||||
WRITE(" ... <i>");
|
||||
if (bp == NULL) WRITE("(a meaning internal to Inform)");
|
||||
else {
|
||||
if (bp->right_way_round == FALSE) {
|
||||
bp = bp->reversal;
|
||||
WRITE("reversed ");
|
||||
}
|
||||
WordAssemblages::index(OUT, &(bp->relation_name));
|
||||
}
|
||||
WRITE("</i>");
|
||||
}
|
20
inform7/index-module/Chapter 2/Rules for Scenes Element.w
Normal file
20
inform7/index-module/Chapter 2/Rules for Scenes Element.w
Normal file
|
@ -0,0 +1,20 @@
|
|||
[IXRulesForScenes::] Rules for Scenes Element.
|
||||
|
||||
The RS element.
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void IXRulesForScenes::render(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p"); WRITE("<b>The scene-changing machinery</b>"); HTML_CLOSE("p");
|
||||
IXRules::index_rules_box(OUT, "Scene changing", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(SCENE_CHANGING_RB), NULL, NULL, 1, FALSE);
|
||||
HTML_OPEN("p");
|
||||
Index::anchor(OUT, I"SRULES");
|
||||
WRITE("<b>General rules applying to scene changes</b>");
|
||||
HTML_CLOSE("p");
|
||||
IXRules::index_rules_box(OUT, "When a scene begins", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(WHEN_SCENE_BEGINS_RB), NULL, NULL, 1, FALSE);
|
||||
IXRules::index_rules_box(OUT, "When a scene ends", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(WHEN_SCENE_ENDS_RB), NULL, NULL, 1, FALSE);
|
||||
}
|
|
@ -411,12 +411,6 @@ int IXRules::noteworthy_rulebooks(inform_extension *E) {
|
|||
return nb;
|
||||
}
|
||||
|
||||
void IXRules::index_scene(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p"); WRITE("<b>The scene-changing machinery</b>"); HTML_CLOSE("p");
|
||||
IXRules::index_rules_box(OUT, "Scene changing", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(SCENE_CHANGING_RB), NULL, NULL, 1, FALSE);
|
||||
}
|
||||
|
||||
int unique_xtra_no = 0;
|
||||
void IXRules::index_rules_box(OUTPUT_STREAM, char *name, wording W, text_stream *doc_link,
|
||||
rulebook *rb, activity *av, char *text, int indent, int hide_behind_plus) {
|
||||
|
@ -643,64 +637,6 @@ void IXRules::index_outcomes(OUTPUT_STREAM, outcomes *outs, int suppress_outcome
|
|||
}
|
||||
}
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void IXRules::index_timed_rules(OUTPUT_STREAM) {
|
||||
int when_count = 0, tt_count = 0;
|
||||
@<Index events with no specific time@>;
|
||||
@<Index timetabled events@>;
|
||||
if ((when_count == 0) && (tt_count == 0)) {
|
||||
HTML_OPEN("p"); WRITE("<i>None.</i>"); HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@<Index events with no specific time@> =
|
||||
id_body *idb;
|
||||
LOOP_OVER(idb, id_body) {
|
||||
int t = TimedRules::get_timing_of_event(idb->head_of_defn);
|
||||
if (t == NO_FIXED_TIME) {
|
||||
if (when_count == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>Events with no specific time</i>");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
when_count++;
|
||||
HTML_OPEN_WITH("p", "class=\"tightin2\"");
|
||||
ImperativeDefinitions::index_preamble(OUT, idb->head_of_defn);
|
||||
if ((ImperativeDefinitions::body_at(idb)) &&
|
||||
(Wordings::nonempty(Node::get_text(ImperativeDefinitions::body_at(idb)))))
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(ImperativeDefinitions::body_at(idb))));
|
||||
WRITE(" (where triggered: ");
|
||||
linked_list *L = TimedRules::get_uses_as_event(idb->head_of_defn);
|
||||
parse_node *p;
|
||||
LOOP_OVER_LINKED_LIST(p, parse_node, L)
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(p)));
|
||||
WRITE(")");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@<Index timetabled events@> =
|
||||
id_body *idb;
|
||||
LOOP_OVER(idb, id_body) {
|
||||
int t = TimedRules::get_timing_of_event(idb->head_of_defn);
|
||||
if (t >= 0) { /* i.e., an actual time of day in minutes since midnight */
|
||||
if (tt_count == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>Timetable</i>");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
tt_count++;
|
||||
HTML_OPEN_WITH("p", "class=\"in2\"");
|
||||
ImperativeDefinitions::index_preamble(OUT, idb->head_of_defn);
|
||||
if ((ImperativeDefinitions::body_at(idb)) &&
|
||||
(Wordings::nonempty(Node::get_text(ImperativeDefinitions::body_at(idb)))))
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(ImperativeDefinitions::body_at(idb))));
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@h Rule contexts.
|
||||
These are mainly (only?) used in indexing, as a way to represent the idea of
|
||||
being the relevant scene or action for a rule.
|
||||
|
|
133
inform7/index-module/Chapter 2/Tables Element.w
Normal file
133
inform7/index-module/Chapter 2/Tables Element.w
Normal file
|
@ -0,0 +1,133 @@
|
|||
[IXTables::] Tables Element.
|
||||
|
||||
To index tables.
|
||||
|
||||
@h Indexing.
|
||||
Tables inside extensions are often used just for the storage needed to manage
|
||||
back-of-house algorithms, so to speak, and they aren't intended for the end
|
||||
user to poke around with; that's certainly true of the tables in the Standard
|
||||
Rules, which of course are always present. So these are hidden by default.
|
||||
|
||||
=
|
||||
void IXTables::render(OUTPUT_STREAM) {
|
||||
HTML_OPEN("p");
|
||||
int m = IXTables::index_tables_in(OUT, NULL, 0);
|
||||
HTML_CLOSE("p");
|
||||
HTML_OPEN("p");
|
||||
Index::extra_link(OUT, 2);
|
||||
if (m > 0) WRITE("Show tables inside extensions too");
|
||||
else WRITE("Show tables inside extensions (there are none in the main text)");
|
||||
HTML_CLOSE("p");
|
||||
Index::extra_div_open(OUT, 2, 1, "e0e0e0");
|
||||
inform_extension *E; int efc = 0;
|
||||
LOOP_OVER(E, inform_extension) IXTables::index_tables_in(OUT, E, efc++);
|
||||
Index::extra_div_close(OUT, "e0e0e0");
|
||||
}
|
||||
|
||||
@ This tabulates tables within a given extension, returning the number listed,
|
||||
and does nothing at all if that number is 0.
|
||||
|
||||
=
|
||||
int IXTables::index_tables_in(OUTPUT_STREAM, inform_extension *E, int efc) {
|
||||
int tc = 0; table *t;
|
||||
LOOP_OVER(t, table) if (IXTables::table_within(t, E)) tc++;
|
||||
if (tc > 0) {
|
||||
if (E) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("<i>%S</i>", E->as_copy->edition->work->title);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
HTML::begin_plain_html_table(OUT);
|
||||
LOOP_OVER(t, table)
|
||||
if (IXTables::table_within(t, E))
|
||||
@<Index this table@>;
|
||||
HTML::end_html_table(OUT);
|
||||
}
|
||||
return tc;
|
||||
}
|
||||
|
||||
@ The following probably ought to use a multiplication sign rather than a
|
||||
Helvetica-style lower case "x", but life is full of compromises.
|
||||
|
||||
@<Index this table@> =
|
||||
HTML::first_html_column_spaced(OUT, 0);
|
||||
WRITE("<b>%+W</b>", Node::get_text(t->headline_fragment));
|
||||
table_contribution *tc; int ntc = 0;
|
||||
for (tc = t->table_created_at; tc; tc = tc->next) {
|
||||
if (ntc++ > 0) WRITE(" +");
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(tc->source_table)));
|
||||
}
|
||||
HTML::next_html_column_spaced(OUT, 0);
|
||||
int rc = Tables::get_no_rows(t);
|
||||
WRITE("<i>");
|
||||
HTML_OPEN_WITH("span", "class=\"smaller\"");
|
||||
if (t->first_column_by_definition) {
|
||||
WRITE("%d definition%s", rc,
|
||||
(rc == 1)?"":"s");
|
||||
} else {
|
||||
WRITE("%d column%s x %d row%s",
|
||||
t->no_columns, (t->no_columns == 1)?"":"s",
|
||||
rc, (rc == 1)?"":"s");
|
||||
}
|
||||
if (t->blank_rows > 0) {
|
||||
WRITE(" (%d blank", t->blank_rows);
|
||||
if (Wordings::nonempty(t->blank_rows_for_each_text))
|
||||
WRITE(", one for each %+W", t->blank_rows_for_each_text);
|
||||
WRITE(")");
|
||||
}
|
||||
HTML_CLOSE("span");
|
||||
WRITE("</i>");
|
||||
HTML::end_html_row(OUT);
|
||||
int col;
|
||||
for (col = 0; col < t->no_columns; col++) {
|
||||
HTML::first_html_column(OUT, 0);
|
||||
WRITE(" col %d: ", col+1);
|
||||
wording CW = Nouns::nominative_singular(t->columns[col].column_identity->name);
|
||||
if ((t->first_column_by_definition) && (col == 0)) {
|
||||
parse_node *PN = t->where_used_to_define;
|
||||
WRITE("%+W", Node::get_text(PN));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(PN)));
|
||||
} else {
|
||||
if (t->first_column_by_definition) WRITE("<i>sets</i> ");
|
||||
WRITE("%+W ", CW);
|
||||
TEMPORARY_TEXT(TEMP)
|
||||
WRITE_TO(TEMP, "%+W", CW);
|
||||
if (t->first_column_by_definition == FALSE) WRITE_TO(TEMP, " entry");
|
||||
PasteButtons::paste_text(OUT, TEMP);
|
||||
DISCARD_TEXT(TEMP)
|
||||
}
|
||||
HTML::next_html_column(OUT, 0);
|
||||
if ((t->first_column_by_definition) && (col == 0)) {
|
||||
parse_node *cell;
|
||||
int row;
|
||||
for (row = 1, cell = t->columns[0].entries->down; cell; cell = cell->next, row++) {
|
||||
if (row > 1) WRITE(", ");
|
||||
WRITE("%+W", Node::get_text(cell));
|
||||
Index::link(OUT, Wordings::first_wn(Node::get_text(cell)));
|
||||
}
|
||||
} else if (t->first_column_by_definition) {
|
||||
Kinds::Textual::write(OUT,
|
||||
Tables::Columns::get_kind(
|
||||
t->columns[col].column_identity));
|
||||
WRITE(" property");
|
||||
} else {
|
||||
WRITE("of ");
|
||||
Kinds::Textual::write_plural(OUT,
|
||||
Tables::Columns::get_kind(
|
||||
t->columns[col].column_identity));
|
||||
}
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
|
||||
@ The following laboriously tests whether a table is defined within a
|
||||
given extension:
|
||||
|
||||
=
|
||||
int IXTables::table_within(table *t, inform_extension *E) {
|
||||
if (t->amendment_of) return FALSE;
|
||||
heading *at_heading =
|
||||
Headings::of_wording(Node::get_text(t->table_created_at->source_table));
|
||||
inform_extension *at_E = Headings::get_extension_containing(at_heading);
|
||||
if (E == at_E) return TRUE;
|
||||
return FALSE;
|
||||
}
|
|
@ -170,32 +170,6 @@ void IXActions::act_index_something(OUTPUT_STREAM, action_name *an, int argc) {
|
|||
WRITE(" ");
|
||||
}
|
||||
|
||||
void IXActions::index_named_patterns(OUTPUT_STREAM) {
|
||||
named_action_pattern *nap;
|
||||
int num_naps = NUMBER_CREATED(named_action_pattern);
|
||||
|
||||
if (num_naps == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("No names for kinds of action have yet been defined.");
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
|
||||
LOOP_OVER(nap, named_action_pattern) {
|
||||
HTML_OPEN("p"); WRITE("<b>%+W</b>", Nouns::nominative_singular(nap->as_noun));
|
||||
Index::link(OUT, Wordings::first_wn(nap->text_of_declaration));
|
||||
HTML_TAG("br");
|
||||
WRITE(" <i>defined as any of the following acts:</i>\n");
|
||||
named_action_pattern_entry *nape;
|
||||
LOOP_OVER_LINKED_LIST(nape, named_action_pattern_entry, nap->patterns) {
|
||||
action_pattern *ap = nape->behaviour;
|
||||
HTML_TAG("br");
|
||||
WRITE(" %+W", ap->text_of_pattern);
|
||||
Index::link(OUT, Wordings::first_wn(ap->text_of_pattern));
|
||||
}
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
void IXActions::index_named_patterns_for_extension(OUTPUT_STREAM, source_file *sf, inform_extension *E) {
|
||||
named_action_pattern *nap;
|
||||
int kc = 0;
|
||||
|
|
|
@ -1,48 +0,0 @@
|
|||
[IXExternalFiles::] External Files.
|
||||
|
||||
To produce the index of external files.
|
||||
|
||||
@ This is more or less perfunctory, but still of some use, if only as a list.
|
||||
|
||||
=
|
||||
void IXExternalFiles::index_all(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(files_plugin) == FALSE) return;
|
||||
files_data *exf;
|
||||
if (NUMBER_CREATED(files_data) == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("This project doesn't read or write external files.");
|
||||
HTML_CLOSE("p");
|
||||
return;
|
||||
}
|
||||
HTML_OPEN("p");
|
||||
WRITE("<b>List of External Files</b>");
|
||||
HTML_CLOSE("p");
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
LOOP_OVER(exf, files_data) {
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (exf->file_is_binary) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/exf_binary.png\"");
|
||||
} else {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/exf_text.png\"");
|
||||
}
|
||||
WRITE(" ");
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", exf->name);
|
||||
Index::link(OUT, Wordings::first_wn(exf->name));
|
||||
HTML_TAG("br");
|
||||
WRITE("Filename: %s %N- owned by ",
|
||||
(exf->file_is_binary)?"- binary ":"",
|
||||
exf->unextended_filename);
|
||||
switch (exf->file_ownership) {
|
||||
case OWNED_BY_THIS_PROJECT: WRITE("this project"); break;
|
||||
case OWNED_BY_ANOTHER_PROJECT: WRITE("another project"); break;
|
||||
case OWNED_BY_SPECIFIC_PROJECT:
|
||||
WRITE("project with IFID number <b>%S</b>",
|
||||
exf->IFID_of_owner);
|
||||
break;
|
||||
}
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
}
|
264
inform7/index-module/Chapter 3/Figures Element.w
Normal file
264
inform7/index-module/Chapter 3/Figures Element.w
Normal file
|
@ -0,0 +1,264 @@
|
|||
[IXFigures::] Figures Element.
|
||||
|
||||
To produce the index of figures.
|
||||
|
||||
@
|
||||
|
||||
=
|
||||
void IXFigures::render(OUTPUT_STREAM) {
|
||||
IXFigures::index_all(OUT);
|
||||
IXFigures::index_sounds(OUT);
|
||||
IXFigures::index_files(OUT);
|
||||
}
|
||||
|
||||
@ The index is presented with thumbnails of a given pixel width, which
|
||||
the HTML renderer automatically scales to fit. Height is adjusted so as
|
||||
to match this width, preserving the aspect ratio.
|
||||
|
||||
@d THUMBNAIL_WIDTH 80
|
||||
|
||||
=
|
||||
void IXFigures::index_all(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(figures_plugin) == FALSE) return;
|
||||
figures_data *bf; FILE *FIGURE_FILE;
|
||||
int MAX_INDEXED_FIGURES = global_compilation_settings.index_figure_thumbnails;
|
||||
int rv;
|
||||
if (NUMBER_CREATED(figures_data) < 2) { /* cover art always creates 1 */
|
||||
HTML_OPEN("p"); WRITE("There are no figures, or illustrations, in this project.");
|
||||
HTML_CLOSE("p"); return;
|
||||
}
|
||||
HTML_OPEN("p"); WRITE("<b>List of Figures</b>"); HTML_CLOSE("p");
|
||||
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
int count_of_displayed_figures = 0;
|
||||
LOOP_OVER(bf, figures_data) {
|
||||
if (bf->figure_number > 1) {
|
||||
TEMPORARY_TEXT(line2)
|
||||
unsigned int width = 0, height = 0;
|
||||
rv = 0;
|
||||
FIGURE_FILE = Filenames::fopen(bf->filename_of_image_file, "rb");
|
||||
if (FIGURE_FILE) {
|
||||
char *real_format = "JPEG";
|
||||
rv = ImageFiles::get_JPEG_dimensions(FIGURE_FILE, &width, &height);
|
||||
fclose(FIGURE_FILE);
|
||||
if (rv == 0) {
|
||||
FIGURE_FILE = Filenames::fopen(bf->filename_of_image_file, "rb");
|
||||
if (FIGURE_FILE) {
|
||||
real_format = "PNG";
|
||||
rv = ImageFiles::get_PNG_dimensions(FIGURE_FILE, &width, &height);
|
||||
fclose(FIGURE_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
WRITE_TO(line2, "<i>Unknown image format</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
WRITE_TO(line2, "%s format: %d (width) by %d (height) pixels",
|
||||
real_format, width, height);
|
||||
HTML_TAG("br");
|
||||
}
|
||||
} else {
|
||||
WRITE_TO(line2, "<i>Missing from the Figures folder</i>");
|
||||
HTML_TAG("br");
|
||||
}
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (rv == 0) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/image_problem.png\"");
|
||||
WRITE(" ");
|
||||
} else if (count_of_displayed_figures++ < MAX_INDEXED_FIGURES) {
|
||||
HTML_TAG_WITH("img", "border=\"1\" src=\"file://%f\" width=\"%d\" height=\"%d\"",
|
||||
bf->filename_of_image_file, THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);
|
||||
WRITE(" ");
|
||||
} else {
|
||||
HTML_OPEN_WITH("div", "style=\"width:%dpx; height:%dpx; border:1px solid; background-color:#6495ed;\"",
|
||||
THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);
|
||||
WRITE(" ");
|
||||
HTML_CLOSE("div");
|
||||
}
|
||||
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", bf->name);
|
||||
Index::link(OUT, Wordings::first_wn(bf->name));
|
||||
|
||||
TEMPORARY_TEXT(rel)
|
||||
Filenames::to_text_relative(rel, bf->filename_of_image_file,
|
||||
Projects::materials_path(Task::project()));
|
||||
HTML_TAG("br");
|
||||
WRITE("%SFilename: \"%S\" - resource number %d", line2, rel, bf->figure_number);
|
||||
DISCARD_TEXT(rel)
|
||||
HTML::end_html_row(OUT);
|
||||
DISCARD_TEXT(line2)
|
||||
}
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
if (count_of_displayed_figures > MAX_INDEXED_FIGURES) {
|
||||
WRITE("(Only the first %d thumbnails have been shown here, "
|
||||
"to avoid Inform taking up too much memory. If you'd like to "
|
||||
"see more, set 'Use index figure thumbnails of at least %d.', or "
|
||||
"whatever number you want to wait for.)",
|
||||
MAX_INDEXED_FIGURES, 10*MAX_INDEXED_FIGURES);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
||||
|
||||
@h Sounds Index.
|
||||
|
||||
=
|
||||
void IXFigures::index_sounds(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(sounds_plugin) == FALSE) return;
|
||||
sounds_data *bs; FILE *SOUND_FILE;
|
||||
TEMPORARY_TEXT(line2)
|
||||
int rv;
|
||||
if (NUMBER_CREATED(sounds_data) == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("There are no sound effects in this project.");
|
||||
HTML_CLOSE("p");
|
||||
return;
|
||||
}
|
||||
HTML_OPEN("p"); WRITE("<b>List of Sounds</b>"); HTML_CLOSE("p");
|
||||
WRITE("\n");
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
LOOP_OVER(bs, sounds_data) {
|
||||
unsigned int duration, pBitsPerSecond, pChannels, pSampleRate, fsize,
|
||||
midi_version = 0, no_tracks = 0;
|
||||
int preview = TRUE, waveform_style = TRUE;
|
||||
rv = 0;
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
char *real_format = "AIFF";
|
||||
rv = SoundFiles::get_AIFF_duration(SOUND_FILE, &duration, &pBitsPerSecond,
|
||||
&pChannels, &pSampleRate);
|
||||
fseek(SOUND_FILE, 0, SEEK_END);
|
||||
fsize = (unsigned int) (ftell(SOUND_FILE));
|
||||
fclose(SOUND_FILE);
|
||||
if (rv == 0) {
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
real_format = "Ogg Vorbis";
|
||||
preview = FALSE;
|
||||
rv = SoundFiles::get_OggVorbis_duration(SOUND_FILE, &duration,
|
||||
&pBitsPerSecond, &pChannels, &pSampleRate);
|
||||
fclose(SOUND_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
waveform_style = FALSE;
|
||||
real_format = "MIDI";
|
||||
preview = TRUE;
|
||||
rv = SoundFiles::get_MIDI_information(SOUND_FILE,
|
||||
&midi_version, &no_tracks);
|
||||
fclose(SOUND_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
WRITE_TO(line2, "<i>Unknown sound format</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
if (waveform_style == FALSE) {
|
||||
WRITE_TO(line2, "Type %d %s file with %d track%s",
|
||||
midi_version, real_format, no_tracks,
|
||||
(no_tracks == 1)?"":"s");
|
||||
HTML_TAG("br");
|
||||
WRITE("<i>Warning: not officially supported in glulx yet</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
int min = (duration/6000), sec = (duration%6000)/100,
|
||||
centisec = (duration%100);
|
||||
WRITE_TO(line2, "%d.%01dKB %s file: duration ",
|
||||
fsize/1024, (fsize%1024)/102, real_format);
|
||||
if (min > 0)
|
||||
WRITE_TO(line2, "%d minutes ", min);
|
||||
if ((sec > 0) || (centisec > 0)) {
|
||||
if (centisec == 0)
|
||||
WRITE_TO(line2, "%d seconds", sec);
|
||||
else
|
||||
WRITE_TO(line2, "%d.%02d seconds", sec, centisec);
|
||||
} else WRITE_TO(line2, "exactly");
|
||||
HTML_TAG("br");
|
||||
WRITE_TO(line2, "Sampled as %d.%01dkHz %s (%d.%01d kilobits/sec)",
|
||||
pSampleRate/1000, (pSampleRate%1000)/100,
|
||||
(pChannels==1)?"Mono":"Stereo",
|
||||
pBitsPerSecond/1000, (pSampleRate%1000)/100);
|
||||
HTML_TAG("br");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
WRITE_TO(line2, "<i>Missing from the Sounds folder</i>");
|
||||
HTML_TAG("br");
|
||||
}
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (rv == 0) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/image_problem.png\"");
|
||||
} else if (preview) {
|
||||
HTML_OPEN_WITH("embed",
|
||||
"src=\"file://%f\" width=\"%d\" height=\"64\" "
|
||||
"autostart=\"false\" volume=\"50%%\" mastersound",
|
||||
bs->filename_of_sound_file, THUMBNAIL_WIDTH);
|
||||
HTML_CLOSE("embed");
|
||||
} else {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/sound_okay.png\"");
|
||||
}
|
||||
WRITE(" ");
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", bs->name);
|
||||
Index::link(OUT, Wordings::first_wn(bs->name));
|
||||
TEMPORARY_TEXT(rel)
|
||||
Filenames::to_text_relative(rel, bs->filename_of_sound_file,
|
||||
Projects::materials_path(Task::project()));
|
||||
HTML_TAG("br");
|
||||
WRITE("%SFilename: \"%S\" - resource number %d", line2, rel, bs->sound_number);
|
||||
DISCARD_TEXT(rel)
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
DISCARD_TEXT(line2)
|
||||
}
|
||||
|
||||
@ This is more or less perfunctory, but still of some use, if only as a list.
|
||||
|
||||
=
|
||||
void IXFigures::index_files(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(files_plugin) == FALSE) return;
|
||||
files_data *exf;
|
||||
if (NUMBER_CREATED(files_data) == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("This project doesn't read or write external files.");
|
||||
HTML_CLOSE("p");
|
||||
return;
|
||||
}
|
||||
HTML_OPEN("p");
|
||||
WRITE("<b>List of External Files</b>");
|
||||
HTML_CLOSE("p");
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
LOOP_OVER(exf, files_data) {
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (exf->file_is_binary) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/exf_binary.png\"");
|
||||
} else {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/exf_text.png\"");
|
||||
}
|
||||
WRITE(" ");
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", exf->name);
|
||||
Index::link(OUT, Wordings::first_wn(exf->name));
|
||||
HTML_TAG("br");
|
||||
WRITE("Filename: %s %N- owned by ",
|
||||
(exf->file_is_binary)?"- binary ":"",
|
||||
exf->unextended_filename);
|
||||
switch (exf->file_ownership) {
|
||||
case OWNED_BY_THIS_PROJECT: WRITE("this project"); break;
|
||||
case OWNED_BY_ANOTHER_PROJECT: WRITE("another project"); break;
|
||||
case OWNED_BY_SPECIFIC_PROJECT:
|
||||
WRITE("project with IFID number <b>%S</b>",
|
||||
exf->IFID_of_owner);
|
||||
break;
|
||||
}
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
[IXFigures::] Figures.
|
||||
|
||||
To produce the index of figures.
|
||||
|
||||
@ The index is presented with thumbnails of a given pixel width, which
|
||||
the HTML renderer automatically scales to fit. Height is adjusted so as
|
||||
to match this width, preserving the aspect ratio.
|
||||
|
||||
@d THUMBNAIL_WIDTH 80
|
||||
|
||||
=
|
||||
void IXFigures::index_all(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(figures_plugin) == FALSE) return;
|
||||
figures_data *bf; FILE *FIGURE_FILE;
|
||||
int MAX_INDEXED_FIGURES = global_compilation_settings.index_figure_thumbnails;
|
||||
int rv;
|
||||
if (NUMBER_CREATED(figures_data) < 2) { /* cover art always creates 1 */
|
||||
HTML_OPEN("p"); WRITE("There are no figures, or illustrations, in this project.");
|
||||
HTML_CLOSE("p"); return;
|
||||
}
|
||||
HTML_OPEN("p"); WRITE("<b>List of Figures</b>"); HTML_CLOSE("p");
|
||||
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
int count_of_displayed_figures = 0;
|
||||
LOOP_OVER(bf, figures_data) {
|
||||
if (bf->figure_number > 1) {
|
||||
TEMPORARY_TEXT(line2)
|
||||
unsigned int width = 0, height = 0;
|
||||
rv = 0;
|
||||
FIGURE_FILE = Filenames::fopen(bf->filename_of_image_file, "rb");
|
||||
if (FIGURE_FILE) {
|
||||
char *real_format = "JPEG";
|
||||
rv = ImageFiles::get_JPEG_dimensions(FIGURE_FILE, &width, &height);
|
||||
fclose(FIGURE_FILE);
|
||||
if (rv == 0) {
|
||||
FIGURE_FILE = Filenames::fopen(bf->filename_of_image_file, "rb");
|
||||
if (FIGURE_FILE) {
|
||||
real_format = "PNG";
|
||||
rv = ImageFiles::get_PNG_dimensions(FIGURE_FILE, &width, &height);
|
||||
fclose(FIGURE_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
WRITE_TO(line2, "<i>Unknown image format</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
WRITE_TO(line2, "%s format: %d (width) by %d (height) pixels",
|
||||
real_format, width, height);
|
||||
HTML_TAG("br");
|
||||
}
|
||||
} else {
|
||||
WRITE_TO(line2, "<i>Missing from the Figures folder</i>");
|
||||
HTML_TAG("br");
|
||||
}
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (rv == 0) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/image_problem.png\"");
|
||||
WRITE(" ");
|
||||
} else if (count_of_displayed_figures++ < MAX_INDEXED_FIGURES) {
|
||||
HTML_TAG_WITH("img", "border=\"1\" src=\"file://%f\" width=\"%d\" height=\"%d\"",
|
||||
bf->filename_of_image_file, THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);
|
||||
WRITE(" ");
|
||||
} else {
|
||||
HTML_OPEN_WITH("div", "style=\"width:%dpx; height:%dpx; border:1px solid; background-color:#6495ed;\"",
|
||||
THUMBNAIL_WIDTH, THUMBNAIL_WIDTH*height/width);
|
||||
WRITE(" ");
|
||||
HTML_CLOSE("div");
|
||||
}
|
||||
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", bf->name);
|
||||
Index::link(OUT, Wordings::first_wn(bf->name));
|
||||
|
||||
TEMPORARY_TEXT(rel)
|
||||
Filenames::to_text_relative(rel, bf->filename_of_image_file,
|
||||
Projects::materials_path(Task::project()));
|
||||
HTML_TAG("br");
|
||||
WRITE("%SFilename: \"%S\" - resource number %d", line2, rel, bf->figure_number);
|
||||
DISCARD_TEXT(rel)
|
||||
HTML::end_html_row(OUT);
|
||||
DISCARD_TEXT(line2)
|
||||
}
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
if (count_of_displayed_figures > MAX_INDEXED_FIGURES) {
|
||||
WRITE("(Only the first %d thumbnails have been shown here, "
|
||||
"to avoid Inform taking up too much memory. If you'd like to "
|
||||
"see more, set 'Use index figure thumbnails of at least %d.', or "
|
||||
"whatever number you want to wait for.)",
|
||||
MAX_INDEXED_FIGURES, 10*MAX_INDEXED_FIGURES);
|
||||
HTML_CLOSE("p");
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
[IXScenes::] Scenes.
|
||||
[IXScenes::] Plot Element.
|
||||
|
||||
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 IXScenes::index(OUTPUT_STREAM) {
|
||||
void IXScenes::render(OUTPUT_STREAM) {
|
||||
int nr = NUMBER_CREATED(scene);
|
||||
scene **sorted = Memory::calloc(nr, sizeof(scene *), INDEX_SORTING_MREASON);
|
||||
@<Sort the scenes@>;
|
||||
|
@ -23,11 +23,6 @@ void IXScenes::index(OUTPUT_STREAM) {
|
|||
Memory::I7_array_free(sorted, INDEX_SORTING_MREASON, nr, sizeof(scene *));
|
||||
}
|
||||
|
||||
void IXScenes::index_rules(OUTPUT_STREAM) {
|
||||
IXRules::index_scene(OUT); /* rules in generic scene-ending rulebooks */
|
||||
@<Show the generic scene-change rules@>;
|
||||
}
|
||||
|
||||
@ As usual, we sort with the C library's |qsort|.
|
||||
|
||||
@<Sort the scenes@> =
|
||||
|
@ -81,15 +76,6 @@ about and created but never made use of.)
|
|||
"or subsequent time because the scene can begin in more than one way</i>.");
|
||||
HTML_CLOSE("p");
|
||||
|
||||
@<Show the generic scene-change rules@> =
|
||||
HTML_OPEN("p");
|
||||
Index::anchor(OUT, I"SRULES");
|
||||
WRITE("<b>General rules applying to scene changes</b>");
|
||||
HTML_CLOSE("p");
|
||||
IXRules::index_rules_box(OUT, "When a scene begins", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(WHEN_SCENE_BEGINS_RB), NULL, NULL, 1, FALSE);
|
||||
IXRules::index_rules_box(OUT, "When a scene ends", EMPTY_WORDING, NULL,
|
||||
Rulebooks::std(WHEN_SCENE_ENDS_RB), NULL, NULL, 1, FALSE);
|
||||
|
||||
@<Give details of each scene in turn@> =
|
||||
Index::anchor(OUT, I"SDETAILS");
|
|
@ -1,119 +0,0 @@
|
|||
[IXSounds::] Sound Effects.
|
||||
|
||||
To produce the index of sound effects.
|
||||
|
||||
@h Sounds Index.
|
||||
|
||||
=
|
||||
void IXSounds::index_all(OUTPUT_STREAM) {
|
||||
if (PluginManager::active(sounds_plugin) == FALSE) return;
|
||||
sounds_data *bs; FILE *SOUND_FILE;
|
||||
TEMPORARY_TEXT(line2)
|
||||
int rv;
|
||||
if (NUMBER_CREATED(sounds_data) == 0) {
|
||||
HTML_OPEN("p");
|
||||
WRITE("There are no sound effects in this project.");
|
||||
HTML_CLOSE("p");
|
||||
return;
|
||||
}
|
||||
HTML_OPEN("p"); WRITE("<b>List of Sounds</b>"); HTML_CLOSE("p");
|
||||
WRITE("\n");
|
||||
HTML::begin_html_table(OUT, "#ffffff", TRUE, 0, 0, 0, 0, 0);
|
||||
LOOP_OVER(bs, sounds_data) {
|
||||
unsigned int duration, pBitsPerSecond, pChannels, pSampleRate, fsize,
|
||||
midi_version = 0, no_tracks = 0;
|
||||
int preview = TRUE, waveform_style = TRUE;
|
||||
rv = 0;
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
char *real_format = "AIFF";
|
||||
rv = SoundFiles::get_AIFF_duration(SOUND_FILE, &duration, &pBitsPerSecond,
|
||||
&pChannels, &pSampleRate);
|
||||
fseek(SOUND_FILE, 0, SEEK_END);
|
||||
fsize = (unsigned int) (ftell(SOUND_FILE));
|
||||
fclose(SOUND_FILE);
|
||||
if (rv == 0) {
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
real_format = "Ogg Vorbis";
|
||||
preview = FALSE;
|
||||
rv = SoundFiles::get_OggVorbis_duration(SOUND_FILE, &duration,
|
||||
&pBitsPerSecond, &pChannels, &pSampleRate);
|
||||
fclose(SOUND_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
SOUND_FILE = Filenames::fopen(bs->filename_of_sound_file, "rb");
|
||||
if (SOUND_FILE) {
|
||||
waveform_style = FALSE;
|
||||
real_format = "MIDI";
|
||||
preview = TRUE;
|
||||
rv = SoundFiles::get_MIDI_information(SOUND_FILE,
|
||||
&midi_version, &no_tracks);
|
||||
fclose(SOUND_FILE);
|
||||
}
|
||||
}
|
||||
if (rv == 0) {
|
||||
WRITE_TO(line2, "<i>Unknown sound format</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
if (waveform_style == FALSE) {
|
||||
WRITE_TO(line2, "Type %d %s file with %d track%s",
|
||||
midi_version, real_format, no_tracks,
|
||||
(no_tracks == 1)?"":"s");
|
||||
HTML_TAG("br");
|
||||
WRITE("<i>Warning: not officially supported in glulx yet</i>");
|
||||
HTML_TAG("br");
|
||||
} else {
|
||||
int min = (duration/6000), sec = (duration%6000)/100,
|
||||
centisec = (duration%100);
|
||||
WRITE_TO(line2, "%d.%01dKB %s file: duration ",
|
||||
fsize/1024, (fsize%1024)/102, real_format);
|
||||
if (min > 0)
|
||||
WRITE_TO(line2, "%d minutes ", min);
|
||||
if ((sec > 0) || (centisec > 0)) {
|
||||
if (centisec == 0)
|
||||
WRITE_TO(line2, "%d seconds", sec);
|
||||
else
|
||||
WRITE_TO(line2, "%d.%02d seconds", sec, centisec);
|
||||
} else WRITE_TO(line2, "exactly");
|
||||
HTML_TAG("br");
|
||||
WRITE_TO(line2, "Sampled as %d.%01dkHz %s (%d.%01d kilobits/sec)",
|
||||
pSampleRate/1000, (pSampleRate%1000)/100,
|
||||
(pChannels==1)?"Mono":"Stereo",
|
||||
pBitsPerSecond/1000, (pSampleRate%1000)/100);
|
||||
HTML_TAG("br");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
WRITE_TO(line2, "<i>Missing from the Sounds folder</i>");
|
||||
HTML_TAG("br");
|
||||
}
|
||||
HTML::first_html_column(OUT, THUMBNAIL_WIDTH+10);
|
||||
if (rv == 0) {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/image_problem.png\"");
|
||||
} else if (preview) {
|
||||
HTML_OPEN_WITH("embed",
|
||||
"src=\"file://%f\" width=\"%d\" height=\"64\" "
|
||||
"autostart=\"false\" volume=\"50%%\" mastersound",
|
||||
bs->filename_of_sound_file, THUMBNAIL_WIDTH);
|
||||
HTML_CLOSE("embed");
|
||||
} else {
|
||||
HTML_TAG_WITH("img", "border=\"0\" src=\"inform:/doc_images/sound_okay.png\"");
|
||||
}
|
||||
WRITE(" ");
|
||||
HTML::next_html_column(OUT, 0);
|
||||
WRITE("%+W", bs->name);
|
||||
Index::link(OUT, Wordings::first_wn(bs->name));
|
||||
TEMPORARY_TEXT(rel)
|
||||
Filenames::to_text_relative(rel, bs->filename_of_sound_file,
|
||||
Projects::materials_path(Task::project()));
|
||||
HTML_TAG("br");
|
||||
WRITE("%SFilename: \"%S\" - resource number %d", line2, rel, bs->sound_number);
|
||||
DISCARD_TEXT(rel)
|
||||
HTML::end_html_row(OUT);
|
||||
}
|
||||
HTML::end_html_table(OUT);
|
||||
HTML_OPEN("p");
|
||||
DISCARD_TEXT(line2)
|
||||
}
|
|
@ -18,22 +18,25 @@ Chapter 2: Indexing
|
|||
Adjectives
|
||||
Variables
|
||||
Properties
|
||||
Relations
|
||||
Relations Element
|
||||
Inferences
|
||||
Rules
|
||||
Activities
|
||||
Phrasebook Index
|
||||
Tables Element
|
||||
Innards Element
|
||||
Events Element
|
||||
Rules for Scenes Element
|
||||
Behaviour Element
|
||||
|
||||
Chapter 3: Indexing for Plugins
|
||||
Figures
|
||||
Sound Effects
|
||||
External Files
|
||||
Figures Element
|
||||
Spatial
|
||||
The Player
|
||||
Backdrops
|
||||
Regions
|
||||
The Map
|
||||
Scenes
|
||||
Plot Element
|
||||
Actions
|
||||
Commands Index
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ natural way to present bibliographic data to the user. In effect, it's a
|
|||
simplified form of the iFiction record, without the XML overhead.
|
||||
|
||||
=
|
||||
void CardElement::Library_Card(OUTPUT_STREAM) {
|
||||
void CardElement::render(OUTPUT_STREAM) {
|
||||
inter_tree *I = Index::get_tree();
|
||||
inter_package *pack = Inter::Packages::by_url(I, I"/main/completion/bibliographic");
|
||||
|
||||
|
|
|
@ -651,10 +651,44 @@ void Index::test_card(OUTPUT_STREAM, wording W) {
|
|||
|
||||
void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
||||
if (Str::eq_wide_string(elt, L"Cd")) {
|
||||
CardElement::Library_Card(OUT);
|
||||
CardElement::render(OUT);
|
||||
return;
|
||||
}
|
||||
#ifdef CORE_MODULE
|
||||
if (Str::eq_wide_string(elt, L"Tb")) {
|
||||
IXTables::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"In")) {
|
||||
IXInnards::render(OUT, Supervisor::current_vm());
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Rl")) {
|
||||
IXRelations::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Ev")) {
|
||||
IXEvents::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"RS")) {
|
||||
IXRulesForScenes::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Pl")) {
|
||||
IXScenes::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Bh")) {
|
||||
IXBehaviour::render(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Fi")) {
|
||||
IXFigures::render(OUT);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (Str::eq_wide_string(elt, L"C")) {
|
||||
IndexHeadings::index(OUT);
|
||||
IndexExtensions::index(OUT);
|
||||
|
@ -667,20 +701,6 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
Equations::index(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Fi")) {
|
||||
IXFigures::index_all(OUT);
|
||||
IXSounds::index_all(OUT);
|
||||
IXExternalFiles::index_all(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Tb")) {
|
||||
Tables::index(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"In")) {
|
||||
IXActivities::innards(OUT, Supervisor::current_vm());
|
||||
return;
|
||||
}
|
||||
|
||||
if (Str::eq_wide_string(elt, L"Ph")) {
|
||||
Phrases::Index::index_page_Phrasebook(OUT);
|
||||
|
@ -690,10 +710,6 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
IndexLexicon::index(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Rl")) {
|
||||
IXRelations::index_table(OUT);
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Vb")) {
|
||||
IndexLexicon::index_verbs(OUT);
|
||||
return;
|
||||
|
@ -718,22 +734,6 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (Str::eq_wide_string(elt, L"Pl")) {
|
||||
#ifdef IF_MODULE
|
||||
IXScenes::index(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Ev")) {
|
||||
IXRules::index_timed_rules(OUT); /* rules which happen at set times of day */
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"RS")) {
|
||||
#ifdef IF_MODULE
|
||||
IXScenes::index_rules(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
if (Str::eq_wide_string(elt, L"St")) {
|
||||
IXRules::Rules_page(OUT, 1);
|
||||
|
@ -745,33 +745,19 @@ void Index::index_actual_element(OUTPUT_STREAM, text_stream *elt) {
|
|||
}
|
||||
|
||||
if (Str::eq_wide_string(elt, L"A1")) {
|
||||
#ifdef IF_MODULE
|
||||
CommandsIndex::page(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Bh")) {
|
||||
#ifdef IF_MODULE
|
||||
IXActions::index_named_patterns(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"Cm")) {
|
||||
#ifdef IF_MODULE
|
||||
CommandsIndex::commands(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"To")) {
|
||||
#ifdef IF_MODULE
|
||||
CommandsIndex::tokens(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (Str::eq_wide_string(elt, L"A2")) {
|
||||
#ifdef IF_MODULE
|
||||
CommandsIndex::alphabetical(OUT);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue