1
0
Fork 0
mirror of https://github.com/ganelson/inform.git synced 2024-07-16 22:14:23 +03:00
inform7/docs/standard_rules/S-pd.html

1118 lines
202 KiB
HTML
Raw Normal View History

2019-03-17 14:40:57 +02:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
2020-01-26 01:42:42 +02:00
<title>S/cg</title>
2020-03-19 02:11:25 +02:00
<meta name="viewport" content="width=device-width initial-scale=1">
2019-03-17 14:40:57 +02:00
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-gb">
2020-03-19 02:11:25 +02:00
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
2019-03-17 14:40:57 +02:00
</head>
<body>
2020-03-19 02:11:25 +02:00
<nav role="navigation">
<h1><a href="../webs.html">Sources</a></h1>
<ul>
<li><a href="../compiler.html">compiler tools</a></li>
2020-03-19 02:11:25 +02:00
<li><a href="../other.html">other tools</a></li>
<li><a href="../extensions.html"><b>extensions and kits</b></a></li>
<li><a href="../units.html">unit test tools</a></li>
2020-04-07 03:06:09 +03:00
</ul>
2020-03-19 02:11:25 +02:00
<h2>Extensions</h2>
<ul>
<li><a href="../basic_inform/index.html">Basic Inform</a></li>
<li><a href="../standard_rules/index.html">Standard Rules</a></li>
</ul>
<h2>Kits</h2>
<ul>
<li><a href="../BasicInformKit/index.html">BasicInformKit</a></li>
<li><a href="../BasicInformExtrasKit/index.html">BasicInformExtrasKit</a></li>
<li><a href="../CommandParserKit/index.html">CommandParserKit</a></li>
<li><a href="../EnglishLanguageKit/index.html">EnglishLanguageKit</a></li>
<li><a href="../WorldModelKit/index.html">WorldModelKit</a></li>
</ul>
</nav>
<main role="main">
2019-03-17 14:40:57 +02:00
<!--Weave of 'S/pd' generated by 7-->
2020-03-23 23:42:00 +02:00
<ul class="crumbs"><li><a href="../webs.html">Source</a></li><li><a href="../extensions.html">Extensions</a></li><li><a href="index.html">srules</a></li><li><b>Phrase Definitions</b></li></ul><p class="purpose">Additional phrases to do with interactive fiction, to add to the much larger collection provided by Basic Inform; and the final sign-off of the Standard Rules extension, including its minimal documentation.</p>
2019-03-17 14:40:57 +02:00
2020-01-26 01:42:42 +02:00
<ul class="toc"><li><a href="#SP5">&#167;5. Using the list-writer</a></li><li><a href="#SP7">&#167;7. Grouping in the list-writer</a></li><li><a href="#SP8">&#167;8. Filtering in the list-writer</a></li><li><a href="#SP9">&#167;9. Figures and sound effects</a></li><li><a href="#SP10">&#167;10. Actions, activities and rules</a></li><li><a href="#SP14">&#167;14. The model world</a></li><li><a href="#SP26">&#167;26. Understanding</a></li><li><a href="#SP31">&#167;31. Message support</a></li><li><a href="#SP32">&#167;32. Deprecated or private-API-like phrases</a></li></ul><hr class="tocbar">
2019-03-17 14:40:57 +02:00
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP1"></a><b>&#167;1. </b>The following is inevitably a bit of a miscellany. Firstly, there's no
model of the passage of time in Basic Inform, so:
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Part</span><span class="plain"> </span><span class="identifier">Seven</span><span class="plain"> - </span><span class="identifier">Phrasebook</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Saying</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Time</span><span class="plain"> </span><span class="identifier">Values</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">words</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_timewords</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">print</span><span class="plain"> (</span><span class="identifier">PrintTimeOfDayEnglish</span><span class="plain">) {</span><span class="identifier">something</span><span class="plain">}; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">here</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_here</span><span class="plain">):</span>
<span class="identifier">say</span><span class="plain"> </span><span class="string">"[if story tense is present tense]here[otherwise]there"</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">now</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_now</span><span class="plain">):</span>
<span class="identifier">say</span><span class="plain"> </span><span class="string">"[if story tense is present tense]now[otherwise]then"</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP2"></a><b>&#167;2. </b>The ability to put up a dinky reverse-video quotation as an epigraph
has somehow survived for 36 years. The decision to continue to support it
even in Inform 6 was critiqued as being an unnecessary throwback by Jimmy
Maher in 2019; he was clearly right; and yet here we are, and it survives
even the 2020 restructuring of Inform's language design.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Boxed</span><span class="plain"> </span><span class="identifier">quotations</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">display</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">boxed</span><span class="plain"> </span><span class="identifier">quotation</span><span class="plain"> (</span><span class="identifier">Q</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_boxed</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">DisplayBoxedQuotation</span><span class="plain">({-</span><span class="identifier">box</span><span class="plain">-</span><span class="identifier">quotation</span><span class="plain">-</span><span class="identifier">text</span><span class="plain">:</span><span class="identifier">Q</span><span class="plain">}); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP3"></a><b>&#167;3. </b>And now some oddball special texts which must sometimes be said.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Some</span><span class="plain"> </span><span class="identifier">built</span><span class="plain">-</span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">texts</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">the</span><span class="plain">/-- </span><span class="identifier">banner</span><span class="plain"> </span><span class="identifier">text</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_banner</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">Banner</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">the</span><span class="plain">/-- </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">extension</span><span class="plain"> </span><span class="identifier">credits</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_extcredits</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">ShowExtensionVersions</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">the</span><span class="plain">/-- </span><span class="identifier">complete</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">extension</span><span class="plain"> </span><span class="identifier">credits</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_compextcredits</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">ShowFullExtensionVersions</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">the</span><span class="plain">/-- </span><span class="identifier">player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">surroundings</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_surroundings</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SL_Location</span><span class="plain">(</span><span class="identifier">true</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">run</span><span class="plain"> </span><span class="identifier">paragraph</span><span class="plain"> </span><span class="identifier">on</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">special</span><span class="plain"> </span><span class="identifier">look</span><span class="plain"> </span><span class="identifier">spacing</span><span class="plain"> -- </span><span class="identifier">running</span><span class="plain"> </span><span class="identifier">on</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_runparaonsls</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SpecialLookSpacingBreak</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">command</span><span class="plain"> </span><span class="identifier">clarification</span><span class="plain"> </span><span class="identifier">break</span><span class="plain"> -- </span><span class="identifier">running</span><span class="plain"> </span><span class="identifier">on</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_clarifbreak</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">CommandClarificationBreak</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP4"></a><b>&#167;4. </b>Recall that this activity exists only in the Standard Rules, and therefore
this phrase definition must similarly be here, not in Basic Inform.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Responses</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">text</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> - </span><span class="identifier">response</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_response</span><span class="plain">):</span>
<span class="identifier">carry</span><span class="plain"> </span><span class="identifier">out</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">issuing</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">response</span><span class="plain"> </span><span class="identifier">text</span><span class="plain"> </span><span class="identifier">activity</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">R</span><span class="plain">.</span>
2020-01-26 01:42:42 +02:00
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP5"></a><b>&#167;5. Using the list-writer. </b>One of the most powerful features of Inform 6 was its list-writer, a lengthy
piece of I6 code wbich now lives on as Inter code, in the <code class="display"><span class="extract">srules</span></code> template:
see "ListWriter.i6t". The following phrases control it:
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">Saying</span><span class="plain"> </span><span class="identifier">lists</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">things</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">contents</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">),</span>
<span class="identifier">with</span><span class="plain"> </span><span class="identifier">newlines</span><span class="plain">,</span>
<span class="identifier">indented</span><span class="plain">,</span>
<span class="identifier">giving</span><span class="plain"> </span><span class="identifier">inventory</span><span class="plain"> </span><span class="identifier">information</span><span class="plain">,</span>
<span class="identifier">as</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">sentence</span><span class="plain">,</span>
<span class="identifier">including</span><span class="plain"> </span><span class="identifier">contents</span><span class="plain">,</span>
<span class="identifier">including</span><span class="plain"> </span><span class="identifier">all</span><span class="plain"> </span><span class="identifier">contents</span><span class="plain">,</span>
<span class="identifier">tersely</span><span class="plain">,</span>
<span class="identifier">giving</span><span class="plain"> </span><span class="identifier">brief</span><span class="plain"> </span><span class="identifier">inventory</span><span class="plain"> </span><span class="identifier">information</span><span class="plain">,</span>
<span class="identifier">using</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">definite</span><span class="plain"> </span><span class="identifier">article</span><span class="plain">,</span>
<span class="identifier">listing</span><span class="plain"> </span><span class="identifier">marked</span><span class="plain"> </span><span class="identifier">items</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">,</span>
<span class="identifier">prefacing</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">is</span><span class="plain">/</span><span class="identifier">are</span><span class="plain">,</span>
<span class="identifier">not</span><span class="plain"> </span><span class="identifier">listing</span><span class="plain"> </span><span class="identifier">concealed</span><span class="plain"> </span><span class="identifier">items</span><span class="plain">,</span>
<span class="identifier">suppressing</span><span class="plain"> </span><span class="identifier">all</span><span class="plain"> </span><span class="identifier">articles</span><span class="plain">,</span>
<span class="identifier">with</span><span class="plain"> </span><span class="identifier">extra</span><span class="plain"> </span><span class="identifier">indentation</span><span class="plain">,</span>
<span class="identifier">and</span><span class="plain">/</span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">capitalized</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_listcontents</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">WriteListFrom</span><span class="plain">(</span><span class="identifier">child</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}), {</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP6"></a><b>&#167;6. </b>These text substitutions all look (and are) repetitive. We want to avoid
passing a description value to some routine, because that's tricky if the
description needs to refer to a value local to the current stack frame. (There
are ways round that, but it minimises nuisance to avoid the need.) So we mark
out the set of objects matching by giving them, and only them, the <code class="display"><span class="extract">workflag2</span></code>
attribute.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_alistof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">A</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_Alistof</span><span class="plain">):</span>
2019-03-17 14:40:57 +02:00
<span class="plain">(-</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">TEXT_TY_Say_Capitalised</span><span class="plain">((+ </span><span class="string">"[list-writer list of marked objects]"</span><span class="plain"> +));</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_listof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">NOARTICLE_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_thelistof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">DEFART_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_Thelistof</span><span class="plain">):</span>
2019-03-17 14:40:57 +02:00
<span class="plain">(-</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">TEXT_TY_Say_Capitalised</span><span class="plain">((+ </span><span class="string">"[list-writer articled list of marked objects]"</span><span class="plain"> +));</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">is</span><span class="plain">-</span><span class="identifier">are</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_isalistof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">ISARE_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">is</span><span class="plain">-</span><span class="identifier">are</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_islistof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">ISARE_BIT</span><span class="plain">+</span><span class="identifier">NOARTICLE_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">is</span><span class="plain">-</span><span class="identifier">are</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_isthelistof</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">DEFART_BIT</span><span class="plain">+</span><span class="identifier">ISARE_BIT</span><span class="plain">);</span>
2020-01-26 01:42:42 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">) </span><span class="identifier">including</span><span class="plain"> </span><span class="identifier">contents</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">phs_alistofconts</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">ofclass</span><span class="plain"> </span><span class="identifier">Object</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">else</span>
<span class="identifier">give</span><span class="plain"> {-</span><span class="identifier">my</span><span class="plain">:1} ~</span><span class="identifier">workflag2</span><span class="plain">;</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">RECURSE_BIT</span><span class="plain">+</span><span class="identifier">PARTINV_BIT</span><span class="plain">+</span>
<span class="identifier">TERSE_BIT</span><span class="plain">+</span><span class="identifier">CONCEAL_BIT</span><span class="plain">);</span>
2020-01-26 01:42:42 +02:00
<span class="plain">-).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP7"></a><b>&#167;7. Grouping in the list-writer. </b>See the specifications of <code class="display"><span class="extract">list_together</span></code> and <code class="display"><span class="extract">c_style</span></code> in the DM4, which are
still broadly accurate.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">6</span><span class="plain"> - </span><span class="identifier">Group</span><span class="plain"> </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">and</span><span class="plain"> </span><span class="identifier">omit</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> </span><span class="identifier">lists</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">group</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">) </span><span class="identifier">together</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_group</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">provides</span><span class="plain"> </span><span class="identifier">list_together</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">BlkValueCopy</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1}.</span><span class="identifier">list_together</span><span class="plain">, {-</span><span class="identifier">list</span><span class="plain">-</span><span class="identifier">together</span><span class="plain">:</span><span class="identifier">unarticled</span><span class="plain">});</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">group</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">) </span><span class="identifier">together</span><span class="plain"> </span><span class="identifier">giving</span><span class="plain"> </span><span class="identifier">articles</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_groupart</span><span class="plain">): (-</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">provides</span><span class="plain"> </span><span class="identifier">list_together</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">BlkValueCopy</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1}.</span><span class="identifier">list_together</span><span class="plain">, {-</span><span class="identifier">list</span><span class="plain">-</span><span class="identifier">together</span><span class="plain">:</span><span class="identifier">articled</span><span class="plain">});</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">group</span><span class="plain"> (</span><span class="identifier">OS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">) </span><span class="identifier">together</span><span class="plain"> </span><span class="identifier">as</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_grouptext</span><span class="plain">): (-</span>
<span class="plain">{-</span><span class="identifier">my</span><span class="plain">:2} = </span><span class="identifier">BlkValueCreate</span><span class="plain">(</span><span class="identifier">TEXT_TY</span><span class="plain">);</span>
<span class="plain">{-</span><span class="identifier">my</span><span class="plain">:2} = </span><span class="identifier">TEXT_TY_SubstitutedForm</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:2}, {-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">T</span><span class="plain">});</span>
<span class="identifier">objectloop</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1} </span><span class="identifier">provides</span><span class="plain"> </span><span class="identifier">list_together</span><span class="plain">)</span>
<span class="identifier">if</span><span class="plain"> ({-</span><span class="identifier">matches</span><span class="plain">-</span><span class="identifier">description</span><span class="plain">:1:</span><span class="identifier">OS</span><span class="plain">})</span>
<span class="identifier">BlkValueCopy</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:1}.</span><span class="identifier">list_together</span><span class="plain">, {-</span><span class="identifier">my</span><span class="plain">:2});</span>
<span class="identifier">BlkValueFree</span><span class="plain">({-</span><span class="identifier">my</span><span class="plain">:2});</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">omit</span><span class="plain"> </span><span class="identifier">contents</span><span class="plain"> </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">listing</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_omit</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">c_style</span><span class="plain"> = </span><span class="identifier">c_style</span><span class="plain"> &amp;~ (</span><span class="identifier">RECURSE_BIT</span><span class="plain">+</span><span class="identifier">FULLINV_BIT</span><span class="plain">+</span><span class="identifier">PARTINV_BIT</span><span class="plain">); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP8"></a><b>&#167;8. Filtering in the list-writer. </b>Something of a last resort, which is intentionally not documented.
It's needed by the Standard Rules to tidy up an implementation and
avoid I6, but is not an ideal trick and may be dropped in later
builds. Recursion occurs when the list-writer descends to the contents
of, or items supported by, something it lists. Here we can restrict to
just those contents, or supportees, matching a description <code class="display"><span class="extract">D</span></code>.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">7</span><span class="plain"> - </span><span class="identifier">Filtering</span><span class="plain"> </span><span class="identifier">contents</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">lists</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">filter</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">recursion</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">list_filter_routine</span><span class="plain"> = {</span><span class="identifier">D</span><span class="plain">}; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">unfilter</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">recursion</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">list_filter_routine</span><span class="plain"> = </span><span class="constant">0</span><span class="plain">; -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP9"></a><b>&#167;9. Figures and sound effects. </b></p>
2019-03-17 14:40:57 +02:00
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Multimedia</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Figures</span><span class="plain"> (</span><span class="identifier">for</span><span class="plain"> </span><span class="identifier">figures</span><span class="plain"> </span><span class="identifier">language</span><span class="plain"> </span><span class="identifier">element</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">)</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">display</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> - </span><span class="identifier">figure</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">), </span><span class="identifier">one</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">only</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_displayfigure</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">DisplayFigure</span><span class="plain">(</span><span class="identifier">ResourceIDsOfFigures</span><span class="plain">--&gt;{</span><span class="identifier">F</span><span class="plain">}, {</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">Glulx</span><span class="plain"> </span><span class="identifier">resource</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">F</span><span class="plain"> - </span><span class="identifier">figure</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_figureid</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">ResourceIDsOfFigures</span><span class="plain">--&gt;{</span><span class="identifier">F</span><span class="plain">} -).</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Sound</span><span class="plain"> </span><span class="identifier">effects</span><span class="plain"> (</span><span class="identifier">for</span><span class="plain"> </span><span class="identifier">sounds</span><span class="plain"> </span><span class="identifier">language</span><span class="plain"> </span><span class="identifier">element</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">)</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">play</span><span class="plain"> (</span><span class="identifier">SFX</span><span class="plain"> - </span><span class="identifier">sound</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">), </span><span class="identifier">one</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">only</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_playsf</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">PlaySound</span><span class="plain">(</span><span class="identifier">ResourceIDsOfSounds</span><span class="plain">--&gt;{</span><span class="identifier">SFX</span><span class="plain">}, {</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">Glulx</span><span class="plain"> </span><span class="identifier">resource</span><span class="plain"> </span><span class="identifier">ID</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">SFX</span><span class="plain"> - </span><span class="identifier">sound</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_soundid</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">ResourceIDsOfSounds</span><span class="plain">--&gt;{</span><span class="identifier">SFX</span><span class="plain">} -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP10"></a><b>&#167;10. Actions, activities and rules. </b>We begin with the firing off of new actions. The current action runs silently
2019-03-17 14:40:57 +02:00
if the I6 global variable <code class="display"><span class="extract">keep_silent</span></code> is set, so the result of the
definitions below is that one can go into silence mode, using "try silently",
but not climb out of it again. This is done because many actions try other
actions as part of their normal workings: if we want action X to be tried
silently, then any action X itself tries should also be tried silently.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Actions</span><span class="plain">, </span><span class="identifier">activities</span><span class="plain"> </span><span class="identifier">and</span><span class="plain"> </span><span class="identifier">rules</span>
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Trying</span><span class="plain"> </span><span class="identifier">actions</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">try</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_try</span><span class="plain">):</span>
<span class="plain">(- {-</span><span class="identifier">try</span><span class="plain">-</span><span class="identifier">action</span><span class="plain">:</span><span class="identifier">S</span><span class="plain">} -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">silently</span><span class="plain"> </span><span class="identifier">try</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_trysilently</span><span class="plain">):</span>
<span class="plain">(- {-</span><span class="identifier">try</span><span class="plain">-</span><span class="identifier">action</span><span class="plain">-</span><span class="identifier">silently</span><span class="plain">:</span><span class="identifier">S</span><span class="plain">} -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">try</span><span class="plain"> </span><span class="identifier">silently</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_trysilently</span><span class="plain">):</span>
<span class="plain">(- {-</span><span class="identifier">try</span><span class="plain">-</span><span class="identifier">action</span><span class="plain">-</span><span class="identifier">silently</span><span class="plain">:</span><span class="identifier">S</span><span class="plain">} -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">silent</span><span class="plain">:</span>
<span class="plain">(- (</span><span class="identifier">keep_silent</span><span class="plain"> == </span><span class="identifier">false</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP11"></a><b>&#167;11. </b>The requirements of the current action can be tested. The following
2019-03-17 14:40:57 +02:00
may be reimplemented using a verb "to require" at some future point.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Action</span><span class="plain"> </span><span class="identifier">requirements</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">requires</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">touchable</span><span class="plain"> </span><span class="identifier">noun</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_requirestouch</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">NeedToTouchNoun</span><span class="plain">()) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">requires</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">touchable</span><span class="plain"> </span><span class="identifier">second</span><span class="plain"> </span><span class="identifier">noun</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_requirestouch2</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">NeedToTouchSecondNoun</span><span class="plain">()) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">requires</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">carried</span><span class="plain"> </span><span class="identifier">noun</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_requirescarried</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">NeedToCarryNoun</span><span class="plain">()) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">requires</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">carried</span><span class="plain"> </span><span class="identifier">second</span><span class="plain"> </span><span class="identifier">noun</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_requirescarried2</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">NeedToCarrySecondNoun</span><span class="plain">()) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">requires</span><span class="plain"> </span><span class="identifier">light</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_requireslight</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">NeedLightForAction</span><span class="plain">()) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">anonymously</span><span class="plain"> </span><span class="identifier">abide</span><span class="plain"> </span><span class="identifier">by</span><span class="plain"> (</span><span class="identifier">RL</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">rule</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_abideanon</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">temporary_value</span><span class="plain"> = </span><span class="identifier">FollowRulebook</span><span class="plain">({</span><span class="identifier">RL</span><span class="plain">})) {</span>
<span class="identifier">if</span><span class="plain"> (</span><span class="identifier">RulebookSucceeded</span><span class="plain">()) </span><span class="identifier">ActRulebookSucceeds</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">else</span><span class="plain"> </span><span class="identifier">ActRulebookFails</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">return</span><span class="plain"> </span><span class="constant">2</span><span class="plain">;</span>
<span class="plain">} -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">anonymously</span><span class="plain"> </span><span class="identifier">abide</span><span class="plain"> </span><span class="identifier">by</span><span class="plain"> (</span><span class="identifier">RL</span><span class="plain"> - </span><span class="identifier">value</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">kind</span><span class="plain"> </span><span class="identifier">K</span><span class="plain"> </span><span class="identifier">based</span><span class="plain"> </span><span class="identifier">rule</span><span class="plain"> </span><span class="identifier">producing</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">value</span><span class="plain">) </span><span class="identifier">for</span><span class="plain"> (</span><span class="identifier">V</span><span class="plain"> - </span><span class="identifier">K</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_abideanon</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">temporary_value</span><span class="plain"> = </span><span class="identifier">FollowRulebook</span><span class="plain">({</span><span class="identifier">RL</span><span class="plain">}, {</span><span class="identifier">V</span><span class="plain">}, </span><span class="identifier">true</span><span class="plain">)) {</span>
<span class="identifier">if</span><span class="plain"> (</span><span class="identifier">RulebookSucceeded</span><span class="plain">()) </span><span class="identifier">ActRulebookSucceeds</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">else</span><span class="plain"> </span><span class="identifier">ActRulebookFails</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">return</span><span class="plain"> </span><span class="constant">2</span><span class="plain">;</span>
<span class="plain">} -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">anonymously</span><span class="plain"> </span><span class="identifier">abide</span><span class="plain"> </span><span class="identifier">by</span><span class="plain"> (</span><span class="identifier">RL</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">nothing</span><span class="plain"> </span><span class="identifier">based</span><span class="plain"> </span><span class="identifier">rule</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_abideanon</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">temporary_value</span><span class="plain"> = </span><span class="identifier">FollowRulebook</span><span class="plain">({</span><span class="identifier">RL</span><span class="plain">})) {</span>
<span class="identifier">if</span><span class="plain"> (</span><span class="identifier">RulebookSucceeded</span><span class="plain">()) </span><span class="identifier">ActRulebookSucceeds</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">else</span><span class="plain"> </span><span class="identifier">ActRulebookFails</span><span class="plain">(</span><span class="identifier">temporary_value</span><span class="plain">);</span>
<span class="identifier">return</span><span class="plain"> </span><span class="constant">2</span><span class="plain">;</span>
<span class="plain">} -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP12"></a><b>&#167;12. </b>Within the rulebooks to do with an action, returning <code class="display"><span class="extract">true</span></code> from a rule
2019-03-17 14:40:57 +02:00
is sufficient to stop the rulebook early: there is no need to specify
success or failure because that is determined by the rulebook itself. (For
instance, if the check taking rules stop for any reason, the action failed;
if the after rules stop, it succeeded.) In some rulebooks, notably "instead"
and "after", the default is to stop, so that execution reaching the end of
the I6 routine for a rule will run into an <code class="display"><span class="extract">rtrue</span></code>. "Continue the action"
prevents this.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Stop</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">continue</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">stop</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_stopaction</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">rtrue</span><span class="plain">; -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">continue</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_continueaction</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">rfalse</span><span class="plain">; -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP13"></a><b>&#167;13. </b></p>
2019-03-17 14:40:57 +02:00
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Actions</span><span class="plain"> </span><span class="identifier">as</span><span class="plain"> </span><span class="identifier">values</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">current</span><span class="plain"> </span><span class="identifier">action</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_currentaction</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">STORED_ACTION_TY_Current</span><span class="plain">({-</span><span class="identifier">new</span><span class="plain">:</span><span class="identifier">action</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">A</span><span class="plain"> - </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_actionof</span><span class="plain">):</span>
<span class="plain">(- {</span><span class="identifier">A</span><span class="plain">} -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">act</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">) </span><span class="identifier">involves</span><span class="plain"> (</span><span class="identifier">X</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_involves</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">STORED_ACTION_TY_Involves</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">act</span><span class="plain">}, {</span><span class="identifier">X</span><span class="plain">})) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">name</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">name</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">act</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_actionpart</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">STORED_ACTION_TY_Part</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">act</span><span class="plain">}, </span><span class="identifier">STORA_ACTION_F</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">noun</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">act</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_nounpart</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">STORED_ACTION_TY_Part</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">act</span><span class="plain">}, </span><span class="identifier">STORA_NOUN_F</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">second</span><span class="plain"> </span><span class="identifier">noun</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">act</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_secondpart</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">STORED_ACTION_TY_Part</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">act</span><span class="plain">}, </span><span class="identifier">STORA_SECOND_F</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">actor</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">act</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_actorpart</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">STORED_ACTION_TY_Part</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">act</span><span class="plain">}, </span><span class="identifier">STORA_ACTOR_F</span><span class="plain">)) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP14"></a><b>&#167;14. The model world. </b>Phrase definitions with wordings like "the story has ended" are a
2019-03-17 14:40:57 +02:00
necessary evil. The "has" here is parsed literally, not as the present
tense of "to have", so inflected forms like "the story had ended" are
not available: nor is there any value "the story" for the subject noun
phrase to hold... and so on. Ideally, we would word all conditional phrases
so as to avoid the verbs, but natural language just doesn't work that way.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">Model</span><span class="plain"> </span><span class="identifier">World</span>
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Ending</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">end</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_end</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">deadflag</span><span class="plain">=3; </span><span class="identifier">story_complete</span><span class="plain">=</span><span class="identifier">false</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">end</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">finally</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_endfinally</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">deadflag</span><span class="plain">=3; </span><span class="identifier">story_complete</span><span class="plain">=</span><span class="identifier">true</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">end</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">saying</span><span class="plain"> (</span><span class="identifier">finale</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_endsaying</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">deadflag</span><span class="plain">={-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">finale</span><span class="plain">}; </span><span class="identifier">story_complete</span><span class="plain">=</span><span class="identifier">false</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">end</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">finally</span><span class="plain"> </span><span class="identifier">saying</span><span class="plain"> (</span><span class="identifier">finale</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_endfinallysaying</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">deadflag</span><span class="plain">={-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">finale</span><span class="plain">}; </span><span class="identifier">story_complete</span><span class="plain">=</span><span class="identifier">true</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_ended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">deadflag</span><span class="plain">~=0) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">ended</span><span class="plain"> </span><span class="identifier">finally</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_finallyended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">story_complete</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_notended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">deadflag</span><span class="plain">==0) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span><span class="plain"> </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">ended</span><span class="plain"> </span><span class="identifier">finally</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_notfinallyended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">story_complete</span><span class="plain">==</span><span class="identifier">false</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">resume</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">story</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_resume</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">resurrect_please</span><span class="plain"> = </span><span class="identifier">true</span><span class="plain">; -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP15"></a><b>&#167;15. </b>Times of day.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Times</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">day</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">minutes</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_minspart</span><span class="plain">):</span>
<span class="plain">(- ({</span><span class="identifier">t</span><span class="plain">}%</span><span class="identifier">ONE_HOUR</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">hours</span><span class="plain"> </span><span class="identifier">part</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_hourspart</span><span class="plain">):</span>
<span class="plain">(- ({</span><span class="identifier">t</span><span class="plain">}/</span><span class="identifier">ONE_HOUR</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP16"></a><b>&#167;16. </b>Comparing times of day is inherently odd, because the day is
2019-03-17 14:40:57 +02:00
circular. Every 2 PM comes after a 1 PM, but it also comes before
another 1 PM. Where do we draw the meridian on this circle? The legal
day divides at midnight but for other purposes (daylight savings time,
for instance) society often chooses 2 AM as the boundary. Inform uses
4 AM instead as the least probable time through which play continues.
(Modulo a 24-hour clock, adding 20 hours is equivalent to subtracting
4 AM from the current time: hence the use of <code class="display"><span class="extract">20*ONE_HOUR</span></code> below.)
Thus 3:59 AM is after 4:00 AM, the former being at the very end of a
day, the latter at the very beginning.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">before</span><span class="plain"> (</span><span class="identifier">t2</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_timebefore</span><span class="plain">):</span>
<span class="plain">(- ((({</span><span class="identifier">t</span><span class="plain">}+20*</span><span class="identifier">ONE_HOUR</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">))&lt;(({</span><span class="identifier">t2</span><span class="plain">}+20*</span><span class="identifier">ONE_HOUR</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">))) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">after</span><span class="plain"> (</span><span class="identifier">t2</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_timeafter</span><span class="plain">):</span>
<span class="plain">(- ((({</span><span class="identifier">t</span><span class="plain">}+20*</span><span class="identifier">ONE_HOUR</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">))&gt;(({</span><span class="identifier">t2</span><span class="plain">}+20*</span><span class="identifier">ONE_HOUR</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">))) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">before</span><span class="plain"> (</span><span class="identifier">t2</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_shiftbefore</span><span class="plain">):</span>
<span class="plain">(- (({</span><span class="identifier">t2</span><span class="plain">}-{</span><span class="identifier">t</span><span class="plain">}+</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">after</span><span class="plain"> (</span><span class="identifier">t2</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_shiftafter</span><span class="plain">):</span>
<span class="plain">(- (({</span><span class="identifier">t2</span><span class="plain">}+{</span><span class="identifier">t</span><span class="plain">}+</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP17"></a><b>&#167;17. </b>Durations are in effect casts from "number" to "time".
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Durations</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> (</span><span class="identifier">n</span><span class="plain"> - </span><span class="identifier">number</span><span class="plain">) </span><span class="identifier">minutes</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_durationmins</span><span class="plain">):</span>
<span class="plain">(- (({</span><span class="identifier">n</span><span class="plain">})%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> (</span><span class="identifier">n</span><span class="plain"> - </span><span class="identifier">number</span><span class="plain">) </span><span class="identifier">hours</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_durationhours</span><span class="plain">):</span>
<span class="plain">(- (({</span><span class="identifier">n</span><span class="plain">}*</span><span class="identifier">ONE_HOUR</span><span class="plain">)%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">)) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP18"></a><b>&#167;18. </b>Timed events.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Timed</span><span class="plain"> </span><span class="identifier">events</span>
<span class="identifier">To</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> - </span><span class="identifier">rule</span><span class="plain">) </span><span class="identifier">in</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">number</span><span class="plain">) </span><span class="identifier">turn</span><span class="plain">/</span><span class="identifier">turns</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> </span><span class="identifier">now</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_turnsfromnow</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SetTimedEvent</span><span class="plain">({-</span><span class="identifier">mark</span><span class="plain">-</span><span class="identifier">event</span><span class="plain">-</span><span class="identifier">used</span><span class="plain">:</span><span class="identifier">R</span><span class="plain">}, {</span><span class="identifier">t</span><span class="plain">}+1, </span><span class="constant">0</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> - </span><span class="identifier">rule</span><span class="plain">) </span><span class="identifier">at</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_attime</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SetTimedEvent</span><span class="plain">({-</span><span class="identifier">mark</span><span class="plain">-</span><span class="identifier">event</span><span class="plain">-</span><span class="identifier">used</span><span class="plain">:</span><span class="identifier">R</span><span class="plain">}, {</span><span class="identifier">t</span><span class="plain">}, </span><span class="constant">1</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> (</span><span class="identifier">R</span><span class="plain"> - </span><span class="identifier">rule</span><span class="plain">) </span><span class="identifier">in</span><span class="plain"> (</span><span class="identifier">t</span><span class="plain"> - </span><span class="identifier">time</span><span class="plain">) </span><span class="identifier">from</span><span class="plain"> </span><span class="identifier">now</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_timefromnow</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SetTimedEvent</span><span class="plain">({-</span><span class="identifier">mark</span><span class="plain">-</span><span class="identifier">event</span><span class="plain">-</span><span class="identifier">used</span><span class="plain">:</span><span class="identifier">R</span><span class="plain">}, (</span><span class="identifier">the_time</span><span class="plain">+{</span><span class="identifier">t</span><span class="plain">})%(</span><span class="identifier">TWENTY_FOUR_HOURS</span><span class="plain">), </span><span class="constant">1</span><span class="plain">); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP19"></a><b>&#167;19. </b>Scenes.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">Scenes</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">happened</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_hashappened</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">scene_endings</span><span class="plain">--&gt;({</span><span class="identifier">sc</span><span class="plain">}-1)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">happened</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_hasnothappened</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">scene_endings</span><span class="plain">--&gt;({</span><span class="identifier">sc</span><span class="plain">}-1) == </span><span class="constant">0</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_hasended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">scene_endings</span><span class="plain">--&gt;({</span><span class="identifier">sc</span><span class="plain">}-1) &gt; </span><span class="constant">1</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">has</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_hasnotended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">scene_endings</span><span class="plain">--&gt;({</span><span class="identifier">sc</span><span class="plain">}-1) &lt;= </span><span class="constant">1</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP20"></a><b>&#167;20. </b>Timing of scenes.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">6</span><span class="plain"> - </span><span class="identifier">Timing</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">scenes</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">since</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">began</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_scenetimesincebegan</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SceneUtility</span><span class="plain">({</span><span class="identifier">sc</span><span class="plain">}, </span><span class="constant">1</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">when</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">began</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_scenetimewhenbegan</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SceneUtility</span><span class="plain">({</span><span class="identifier">sc</span><span class="plain">}, </span><span class="constant">2</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">since</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_scenetimesinceended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SceneUtility</span><span class="plain">({</span><span class="identifier">sc</span><span class="plain">}, </span><span class="constant">3</span><span class="plain">)) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">time</span><span class="plain"> </span><span class="identifier">when</span><span class="plain"> (</span><span class="identifier">sc</span><span class="plain"> - </span><span class="identifier">scene</span><span class="plain">) </span><span class="identifier">ended</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_scenetimewhenended</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SceneUtility</span><span class="plain">({</span><span class="identifier">sc</span><span class="plain">}, </span><span class="constant">4</span><span class="plain">)) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP21"></a><b>&#167;21. </b>Player's identity and location.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">7</span><span class="plain"> - </span><span class="identifier">Player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">identity</span><span class="plain"> </span><span class="identifier">and</span><span class="plain"> </span><span class="identifier">location</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">darkness</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_indarkness</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">location</span><span class="plain">==</span><span class="identifier">thedark</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP22"></a><b>&#167;22. </b>Moving and removing things.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">8</span><span class="plain"> - </span><span class="identifier">Moving</span><span class="plain"> </span><span class="identifier">and</span><span class="plain"> </span><span class="identifier">removing</span><span class="plain"> </span><span class="identifier">things</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">move</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">),</span>
<span class="identifier">without</span><span class="plain"> </span><span class="identifier">printing</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">description</span>
<span class="identifier">or</span><span class="plain"> </span><span class="identifier">printing</span><span class="plain"> </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">abbreviated</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">description</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_move</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MoveObject</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">}, {</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain">}, {</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}, </span><span class="identifier">false</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">remove</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">from</span><span class="plain"> </span><span class="identifier">play</span>
<span class="plain">(</span><span class="identifier">deprecated</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_remove</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">RemoveFromPlay</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">move</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">backdrop</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">all</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_movebackdrop</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MoveBackdrop</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}, {</span><span class="identifier">D</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">update</span><span class="plain"> </span><span class="identifier">backdrop</span><span class="plain"> </span><span class="identifier">positions</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_updatebackdrop</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MoveFloatingObjects</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP23"></a><b>&#167;23. </b>The map.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">9</span><span class="plain"> - </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">map</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">location</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_locationof</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">LocationOf</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">direction</span><span class="plain">) </span><span class="identifier">from</span><span class="plain">/</span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_roomdirof</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MapConnection</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">D</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">door</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">door</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">direction</span><span class="plain">) </span><span class="identifier">from</span><span class="plain">/</span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_doordirof</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">DoorFrom</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">D</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">other</span><span class="plain"> </span><span class="identifier">side</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">door</span><span class="plain">) </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_othersideof</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">OtherSideOfDoor</span><span class="plain">({</span><span class="identifier">D</span><span class="plain">},{</span><span class="identifier">R1</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">direction</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">door</span><span class="plain">) </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_directionofdoor</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">DirectionDoorLeadsIn</span><span class="plain">({</span><span class="identifier">D</span><span class="plain">},{</span><span class="identifier">R1</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">room</span><span class="plain">-</span><span class="identifier">or</span><span class="plain">-</span><span class="identifier">door</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">direction</span><span class="plain">) </span><span class="identifier">from</span><span class="plain">/</span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_roomordoor</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">RoomOrDoorFrom</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">D</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">change</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">direction</span><span class="plain">) </span><span class="identifier">exit</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">R2</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_changeexit</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">AssertMapConnection</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">D</span><span class="plain">},{</span><span class="identifier">R2</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">change</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">direction</span><span class="plain">) </span><span class="identifier">exit</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">room</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">nothing</span><span class="plain">/</span><span class="identifier">nowhere</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_changenoexit</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">AssertMapConnection</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">D</span><span class="plain">},</span><span class="identifier">nothing</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">front</span><span class="plain"> </span><span class="identifier">side</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_frontside</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">FrontSideOfDoor</span><span class="plain">({</span><span class="identifier">D</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">back</span><span class="plain"> </span><span class="identifier">side</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">D</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_backside</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">BackSideOfDoor</span><span class="plain">({</span><span class="identifier">D</span><span class="plain">}) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP24"></a><b>&#167;24. </b>Route-finding.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">10</span><span class="plain"> - </span><span class="identifier">Route</span><span class="plain">-</span><span class="identifier">finding</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">best</span><span class="plain"> </span><span class="identifier">route</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">R2</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">),</span>
<span class="identifier">using</span><span class="plain"> </span><span class="identifier">doors</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">using</span><span class="plain"> </span><span class="identifier">even</span><span class="plain"> </span><span class="identifier">locked</span><span class="plain"> </span><span class="identifier">doors</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_bestroute</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MapRouteTo</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">R2</span><span class="plain">},0,{</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">moves</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">R2</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">),</span>
<span class="identifier">using</span><span class="plain"> </span><span class="identifier">doors</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">using</span><span class="plain"> </span><span class="identifier">even</span><span class="plain"> </span><span class="identifier">locked</span><span class="plain"> </span><span class="identifier">doors</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_bestroutelength</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MapRouteTo</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">R2</span><span class="plain">},0,{</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">},</span><span class="identifier">true</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">best</span><span class="plain"> </span><span class="identifier">route</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">R2</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">through</span>
<span class="plain">(</span><span class="identifier">RS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">),</span>
<span class="identifier">using</span><span class="plain"> </span><span class="identifier">doors</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">using</span><span class="plain"> </span><span class="identifier">even</span><span class="plain"> </span><span class="identifier">locked</span><span class="plain"> </span><span class="identifier">doors</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_bestroutethrough</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MapRouteTo</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">R2</span><span class="plain">},{</span><span class="identifier">RS</span><span class="plain">},{</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">moves</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">R1</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">R2</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">through</span>
<span class="plain">(</span><span class="identifier">RS</span><span class="plain"> - </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">),</span>
<span class="identifier">using</span><span class="plain"> </span><span class="identifier">doors</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">using</span><span class="plain"> </span><span class="identifier">even</span><span class="plain"> </span><span class="identifier">locked</span><span class="plain"> </span><span class="identifier">doors</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_bestroutethroughlength</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">MapRouteTo</span><span class="plain">({</span><span class="identifier">R1</span><span class="plain">},{</span><span class="identifier">R2</span><span class="plain">},{</span><span class="identifier">RS</span><span class="plain">},{</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">},</span><span class="identifier">true</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP25"></a><b>&#167;25. </b>The object tree.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">11</span><span class="plain"> - </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">tree</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">holder</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_holder</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">HolderOf</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">})) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">next</span><span class="plain"> </span><span class="identifier">thing</span><span class="plain"> </span><span class="identifier">held</span><span class="plain"> </span><span class="identifier">after</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_nextheld</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">sibling</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">})) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">first</span><span class="plain"> </span><span class="identifier">thing</span><span class="plain"> </span><span class="identifier">held</span><span class="plain"> </span><span class="identifier">by</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_firstheld</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">child</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">})) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP26"></a><b>&#167;26. Understanding. </b>First, asking yes/no questions.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">Understanding</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Asking</span><span class="plain"> </span><span class="identifier">yes</span><span class="plain">/</span><span class="identifier">no</span><span class="plain"> </span><span class="identifier">questions</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">player</span><span class="plain"> </span><span class="identifier">consents</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_consents</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">YesOrNo</span><span class="plain">() -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP27"></a><b>&#167;27. </b>Support for snippets, which are substrings of the player's command. This
is a kind of value which doesm't exist in Basic Inform.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">command</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">) </span><span class="identifier">matches</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">topic</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_snippetmatches</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SnippetMatches</span><span class="plain">({</span><span class="identifier">S</span><span class="plain">}, {</span><span class="identifier">T</span><span class="plain">})) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">) </span><span class="identifier">does</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">match</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">topic</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_snippetdoesnotmatch</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SnippetMatches</span><span class="plain">({</span><span class="identifier">S</span><span class="plain">}, {</span><span class="identifier">T</span><span class="plain">}) == </span><span class="identifier">false</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">) </span><span class="identifier">includes</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">topic</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_snippetincludes</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">matched_text</span><span class="plain">=</span><span class="identifier">SnippetIncludes</span><span class="plain">({</span><span class="identifier">T</span><span class="plain">},{</span><span class="identifier">S</span><span class="plain">})) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">) </span><span class="identifier">does</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">include</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">topic</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_snippetdoesnotinclude</span><span class="plain">):</span>
<span class="plain">(- (</span><span class="identifier">SnippetIncludes</span><span class="plain">({</span><span class="identifier">T</span><span class="plain">},{</span><span class="identifier">S</span><span class="plain">})==0) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP28"></a><b>&#167;28. </b>Changing the player's command.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Changing</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">command</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">change</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">text</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">command</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_changecommand</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SetPlayersCommand</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">T</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">replace</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">) </span><span class="identifier">with</span><span class="plain"> (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_replacesnippet</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SpliceSnippet</span><span class="plain">({</span><span class="identifier">S</span><span class="plain">}, {-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">T</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">cut</span><span class="plain"> (</span><span class="identifier">S</span><span class="plain"> - </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">snippet</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_cutsnippet</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">SpliceSnippet</span><span class="plain">({</span><span class="identifier">S</span><span class="plain">}, </span><span class="constant">0</span><span class="plain">); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">reject</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">player</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">command</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_rejectcommand</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">RulebookFails</span><span class="plain">(); </span><span class="identifier">rtrue</span><span class="plain">; -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP29"></a><b>&#167;29. </b>Scope and pronouns.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Scope</span><span class="plain"> </span><span class="identifier">and</span><span class="plain"> </span><span class="identifier">pronouns</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">place</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">scope</span><span class="plain">, </span><span class="identifier">but</span><span class="plain"> </span><span class="identifier">not</span><span class="plain"> </span><span class="identifier">its</span><span class="plain"> </span><span class="identifier">contents</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_placeinscope</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">PlaceInScope</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}, {</span><span class="identifier">phrase</span><span class="plain"> </span><span class="identifier">options</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">place</span><span class="plain"> </span><span class="identifier">the</span><span class="plain">/-- </span><span class="identifier">contents</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">scope</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_placecontentsinscope</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">ScopeWithin</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">set</span><span class="plain"> </span><span class="identifier">pronouns</span><span class="plain"> </span><span class="identifier">from</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_setpronouns</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">PronounNotice</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP30"></a><b>&#167;30. </b>The multiple object list is a data structure used in the parser when
processing commands like TAKE ALL.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">The</span><span class="plain"> </span><span class="identifier">multiple</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">list</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">what</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">multiple</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">list</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_multipleobjectlist</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">LIST_OF_TY_Mol</span><span class="plain">({-</span><span class="identifier">new</span><span class="plain">:</span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">alter</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">multiple</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">L</span><span class="plain"> - </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">)</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_altermultipleobjectlist</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">LIST_OF_TY_Set_Mol</span><span class="plain">({-</span><span class="identifier">by</span><span class="plain">-</span><span class="identifier">reference</span><span class="plain">:</span><span class="identifier">L</span><span class="plain">}); -).</span>
2020-01-26 01:42:42 +02:00
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP31"></a><b>&#167;31. Message support. </b>"Unindexed" here is a euphemism for "undocumented". This is where
2019-03-17 14:40:57 +02:00
experimental or intermediate phrases go: things we don't want people
to use because we will probably revise them heavily in later builds of
Inform. For now, the Standard Rules do make use of these phrases, but
nobody else should. They will change without comment in the change
log.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="identifier">SR5</span><span class="plain">/8/1 - </span><span class="identifier">Message</span><span class="plain"> </span><span class="identifier">support</span><span class="plain"> - </span><span class="identifier">Issuance</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">issue</span><span class="plain"> </span><span class="identifier">score</span><span class="plain"> </span><span class="identifier">notification</span><span class="plain"> </span><span class="identifier">message</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">NotifyTheScore</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">pronoun</span><span class="plain"> </span><span class="identifier">dictionary</span><span class="plain"> </span><span class="identifier">word</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">print</span><span class="plain"> (</span><span class="identifier">address</span><span class="plain">) </span><span class="identifier">pronoun_word</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">recap</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">command</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">PrintCommand</span><span class="plain">(); -).</span>
<span class="identifier">The</span><span class="plain"> </span><span class="identifier">pronoun</span><span class="plain"> </span><span class="identifier">reference</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">that</span><span class="plain"> </span><span class="identifier">varies</span><span class="plain">.</span>
<span class="identifier">The</span><span class="plain"> </span><span class="identifier">pronoun</span><span class="plain"> </span><span class="identifier">reference</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">variable</span><span class="plain"> </span><span class="identifier">translates</span><span class="plain"> </span><span class="identifier">into</span><span class="plain"> </span><span class="identifier">I6</span><span class="plain"> </span><span class="identifier">as</span><span class="plain"> </span><span class="string">"pronoun_obj"</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">pronoun</span><span class="plain"> </span><span class="identifier">i6</span><span class="plain"> </span><span class="identifier">dictionary</span><span class="plain"> </span><span class="identifier">word</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">print</span><span class="plain"> (</span><span class="identifier">address</span><span class="plain">) </span><span class="identifier">pronoun_word</span><span class="plain">; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">parser</span><span class="plain"> </span><span class="identifier">command</span><span class="plain"> </span><span class="identifier">so</span><span class="plain"> </span><span class="identifier">far</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">PrintCommand</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP32"></a><b>&#167;32. Deprecated or private-API-like phrases. </b>None of these are part of Inform's public specification, and they should be
used only by extensions built in to Inform; they may change at any time.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">6</span><span class="plain"> - </span><span class="identifier">Deprecated</span><span class="plain"> </span><span class="identifier">or</span><span class="plain"> </span><span class="identifier">private</span><span class="plain"> </span><span class="identifier">phrases</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Spatial</span><span class="plain"> </span><span class="identifier">modelling</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP33"></a><b>&#167;33. </b>These are actually sensible concepts in the world model, and could even
2019-03-17 14:40:57 +02:00
be opened to public use, but they're quite complicated to explain.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">component</span><span class="plain"> </span><span class="identifier">parts</span><span class="plain"> </span><span class="identifier">core</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">X</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">CoreOf</span><span class="plain">({</span><span class="identifier">X</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">common</span><span class="plain"> </span><span class="identifier">ancestor</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">with</span>
<span class="plain">(</span><span class="identifier">P</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">):</span>
2020-04-08 01:02:44 +03:00
<span class="plain"> (- (</span><span class="identifier">CommonAncestor</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}, {</span><span class="identifier">P</span><span class="plain">})) -).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">not</span><span class="plain">-</span><span class="identifier">counting</span><span class="plain">-</span><span class="identifier">parts</span><span class="plain"> </span><span class="identifier">holder</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">):</span>
2020-04-08 01:02:44 +03:00
<span class="plain"> (- (</span><span class="identifier">CoreOfParentOfCoreOf</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">})) -).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">visibility</span><span class="plain">-</span><span class="identifier">holder</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">VisibilityParent</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">calculate</span><span class="plain"> </span><span class="identifier">visibility</span><span class="plain"> </span><span class="identifier">ceiling</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">low</span><span class="plain"> </span><span class="identifier">level</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">FindVisibilityLevels</span><span class="plain">(); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">touchability</span><span class="plain"> </span><span class="identifier">ceiling</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">TouchabilityCeiling</span><span class="plain">({</span><span class="identifier">O</span><span class="plain">}) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP34"></a><b>&#167;34. </b>These are in effect global variables, but aren't defined as such, to
2019-03-17 14:40:57 +02:00
prevent people using them. Their contents are only very briefly meaningful,
and they would be dangerous friends to know.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">number</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">visibility</span><span class="plain"> </span><span class="identifier">ceiling</span><span class="plain"> </span><span class="identifier">count</span><span class="plain"> </span><span class="identifier">calculated</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">visibility_levels</span><span class="plain"> -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">which</span><span class="plain"> </span><span class="identifier">object</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">visibility</span><span class="plain"> </span><span class="identifier">ceiling</span><span class="plain"> </span><span class="identifier">calculated</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">visibility_ceiling</span><span class="plain"> -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP35"></a><b>&#167;35. </b>This is a unique quasi-action, using the secondary action processing
2019-03-17 14:40:57 +02:00
stage only. A convenience, but also an anomaly, and let's not encourage
its further use.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Room</span><span class="plain"> </span><span class="identifier">descriptions</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">produce</span><span class="plain"> </span><span class="identifier">a</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">description</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">going</span><span class="plain"> </span><span class="identifier">spacing</span><span class="plain"> </span><span class="identifier">conventions</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">LookAfterGoing</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP36"></a><b>&#167;36. </b>An ugly little trick needed because of the mismatch between I6 and I7
2019-03-17 14:40:57 +02:00
property implementation, and because of legacy code from the old I6 library.
Please don't touch.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">print</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">location</span><span class="plain">'</span><span class="identifier">s</span><span class="plain"> </span><span class="identifier">description</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">PrintOrRun</span><span class="plain">(</span><span class="identifier">location</span><span class="plain">, </span><span class="identifier">description</span><span class="plain">); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP37"></a><b>&#167;37. </b>The following cries out for an enumerated kind of value, but for historical
reasons it isn't one.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">set</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">sometimes</span><span class="plain"> </span><span class="identifier">abbreviated</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">descriptions</span><span class="plain">:</span>
<span class="plain">(- (</span><span class="identifier">lookmode</span><span class="plain"> == </span><span class="constant">1</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">set</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">unabbreviated</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">descriptions</span><span class="plain">:</span>
<span class="plain">(- (</span><span class="identifier">lookmode</span><span class="plain"> == </span><span class="constant">2</span><span class="plain">) -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">set</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">abbreviated</span><span class="plain"> </span><span class="identifier">room</span><span class="plain"> </span><span class="identifier">descriptions</span><span class="plain">:</span>
<span class="plain">(- (</span><span class="identifier">lookmode</span><span class="plain"> == </span><span class="constant">3</span><span class="plain">) -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP38"></a><b>&#167;38. </b>Action conversion is a trick used in the Standard Rules to simplify the
2019-03-17 14:40:57 +02:00
implementation of actions: it allows one action to become another one
mid-way, without causing spurious action failures. (There are better ways
to make user-defined actions convert, and some of the examples show this.)
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">3</span><span class="plain"> - </span><span class="identifier">Action</span><span class="plain"> </span><span class="identifier">conversion</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">convert</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">AN</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">) </span><span class="identifier">on</span><span class="plain"> (</span><span class="identifier">O</span><span class="plain"> - </span><span class="identifier">an</span><span class="plain"> </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">return</span><span class="plain"> </span><span class="identifier">GVS_Convert</span><span class="plain">({</span><span class="identifier">AN</span><span class="plain">},{</span><span class="identifier">O</span><span class="plain">},0); -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">convert</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">request</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> (</span><span class="identifier">X</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">perform</span><span class="plain"> (</span><span class="identifier">AN</span><span class="plain"> - </span><span class="identifier">action</span><span class="plain"> </span><span class="identifier">name</span><span class="plain">) </span><span class="identifier">with</span>
<span class="plain">(</span><span class="identifier">Y</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">and</span><span class="plain"> (</span><span class="identifier">Z</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">return</span><span class="plain"> </span><span class="identifier">ConvertToRequest</span><span class="plain">({</span><span class="identifier">X</span><span class="plain">}, {</span><span class="identifier">AN</span><span class="plain">}, {</span><span class="identifier">Y</span><span class="plain">}, {</span><span class="identifier">Z</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">convert</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">special</span><span class="plain"> </span><span class="identifier">going</span><span class="plain">-</span><span class="identifier">with</span><span class="plain">-</span><span class="identifier">push</span><span class="plain"> </span><span class="identifier">action</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">return</span><span class="plain"> </span><span class="identifier">ConvertToGoingWithPush</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP39"></a><b>&#167;39. </b>The "surreptitiously" phrases shouldn't be used except in the Standard Rules
2019-03-17 14:40:57 +02:00
because they temporarily violate invariants for the object tree and the
light variables; the SR uses them carefully in situations where it's known to
work out all right.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Surreptitious</span><span class="plain"> </span><span class="identifier">violation</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">invariants</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">surreptitiously</span><span class="plain"> </span><span class="identifier">move</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">move</span><span class="plain"> {</span><span class="identifier">something</span><span class="plain">} </span><span class="identifier">to</span><span class="plain"> {</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain">}; -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">surreptitiously</span><span class="plain"> </span><span class="identifier">move</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">to</span><span class="plain"> (</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain"> - </span><span class="identifier">object</span><span class="plain">) </span><span class="identifier">during</span><span class="plain"> </span><span class="identifier">going</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">MoveDuringGoing</span><span class="plain">({</span><span class="identifier">something</span><span class="plain">}, {</span><span class="identifier">something</span><span class="plain"> </span><span class="identifier">else</span><span class="plain">}); -).</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">surreptitiously</span><span class="plain"> </span><span class="identifier">reckon</span><span class="plain"> </span><span class="identifier">darkness</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">SilentlyConsiderLight</span><span class="plain">(); -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP40"></a><b>&#167;40. </b>These are text substitutions needed to make the capitalised lists work.
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">Capitalised</span><span class="plain"> </span><span class="identifier">list</span><span class="plain">-</span><span class="identifier">writing</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">list</span><span class="plain">-</span><span class="identifier">writer</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">marked</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">: (-</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">say</span><span class="plain"> </span><span class="identifier">list</span><span class="plain">-</span><span class="identifier">writer</span><span class="plain"> </span><span class="identifier">articled</span><span class="plain"> </span><span class="identifier">list</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">marked</span><span class="plain"> </span><span class="identifier">objects</span><span class="plain">: (-</span>
<span class="identifier">WriteListOfMarkedObjects</span><span class="plain">(</span><span class="identifier">ENGLISH_BIT</span><span class="plain">+</span><span class="identifier">DEFART_BIT</span><span class="plain">+</span><span class="identifier">CFIRSTART_BIT</span><span class="plain">);</span>
2019-03-17 14:40:57 +02:00
<span class="plain">-).</span>
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP41"></a><b>&#167;41. </b>This avoids "mentioned" being given to items printed only internally for
the sake of a string comparison, and not shown on screen.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">6</span><span class="plain"> - </span><span class="identifier">Printing</span><span class="plain"> </span><span class="identifier">names</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">expanding</span><span class="plain"> </span><span class="identifier">text</span><span class="plain"> </span><span class="identifier">for</span><span class="plain"> </span><span class="identifier">comparison</span><span class="plain"> </span><span class="identifier">purposes</span><span class="plain">:</span>
<span class="plain">(- </span><span class="identifier">say__comp</span><span class="plain"> -).</span>
2020-01-26 01:42:42 +02:00
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP42"></a><b>&#167;42. </b>This is a bit trickier than it looks, because it isn't always set when
one thinks it is. (And since first typing that sentence, I've forgotten
when that would be.)
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">7</span><span class="plain"> - </span><span class="identifier">Command</span><span class="plain"> </span><span class="identifier">parsing</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2020-01-26 01:42:42 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">whether</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">I6</span><span class="plain"> </span><span class="identifier">parser</span><span class="plain"> </span><span class="identifier">is</span><span class="plain"> </span><span class="identifier">running</span><span class="plain"> </span><span class="identifier">multiple</span><span class="plain"> </span><span class="identifier">actions</span><span class="plain">:</span>
<span class="plain">(- (</span><span class="identifier">multiflag</span><span class="plain">==1) -).</span>
2020-01-26 01:42:42 +02:00
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP43"></a><b>&#167;43. </b>The antique forms "yes" and "no" are now somewhat to be regretted, with
"decide yes" and "decide no" being clearer ways to write the same thing.
But we seem to be stuck with them.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">8</span><span class="plain"> - </span><span class="identifier">Deprecated</span><span class="plain"> </span><span class="identifier">Inform</span><span class="plain"> - </span><span class="identifier">unindexed</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">yes</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_yes</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">rtrue</span><span class="plain">; -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
<span class="identifier">To</span><span class="plain"> </span><span class="identifier">no</span>
<span class="plain">(</span><span class="identifier">documented</span><span class="plain"> </span><span class="identifier">at</span><span class="plain"> </span><span class="identifier">ph_no</span><span class="plain">):</span>
<span class="plain">(- </span><span class="identifier">rfalse</span><span class="plain">; -) - </span><span class="identifier">in</span><span class="plain"> </span><span class="identifier">to</span><span class="plain"> </span><span class="identifier">decide</span><span class="plain"> </span><span class="identifier">if</span><span class="plain"> </span><span class="identifier">only</span><span class="plain">.</span>
2020-01-26 01:42:42 +02:00
</pre>
<p class="inwebparagraph"></p>
<p class="inwebparagraph"><a id="SP44"></a><b>&#167;44. </b>This is convenient for debugging Inform, but for no other purpose. It
2019-03-17 14:40:57 +02:00
toggles verbose logging of the type-checker.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">9</span><span class="plain"> - </span><span class="identifier">Debugging</span><span class="plain"> </span><span class="identifier">Inform</span><span class="plain"> - </span><span class="identifier">Unindexed</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">To</span><span class="plain"> ***:</span>
<span class="plain">(- {-</span><span class="identifier">primitive</span><span class="plain">-</span><span class="identifier">definition</span><span class="plain">:</span><span class="identifier">verbose</span><span class="plain">-</span><span class="identifier">checking</span><span class="plain">} -).</span>
<span class="identifier">To</span><span class="plain"> *** (</span><span class="identifier">T</span><span class="plain"> - </span><span class="identifier">text</span><span class="plain">):</span>
<span class="plain">(- {-</span><span class="identifier">primitive</span><span class="plain">-</span><span class="identifier">definition</span><span class="plain">:</span><span class="identifier">verbose</span><span class="plain">-</span><span class="identifier">checking</span><span class="plain">} -).</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP45"></a><b>&#167;45. </b>And so, at last...
2019-03-17 14:40:57 +02:00
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="identifier">The</span><span class="plain"> </span><span class="identifier">Standard</span><span class="plain"> </span><span class="identifier">Rules</span><span class="plain"> </span><span class="identifier">end</span><span class="plain"> </span><span class="identifier">here</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
2020-01-26 01:42:42 +02:00
<p class="inwebparagraph"><a id="SP46"></a><b>&#167;46. </b>...except that this is not quite true, because like most extensions they
2019-03-17 14:40:57 +02:00
then quote some documentation for Inform to weave into index pages: though
here it's more of a polite refusal than a manual, since the entire system
documentation is really the description of what was defined in this
extension.
</p>
<pre class="display">
2020-04-07 03:06:09 +03:00
<span class="plain">---- </span><span class="identifier">DOCUMENTATION</span><span class="plain"> ----</span>
2019-03-17 14:40:57 +02:00
2020-04-07 03:06:09 +03:00
<span class="identifier">Unlike</span><span class="plain"> </span><span class="identifier">other</span><span class="plain"> </span><span class="identifier">extensions</span><span class="plain">, </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">Standard</span><span class="plain"> </span><span class="identifier">Rules</span><span class="plain"> </span><span class="identifier">are</span><span class="plain"> </span><span class="identifier">compulsorily</span><span class="plain"> </span><span class="identifier">included</span>
<span class="identifier">with</span><span class="plain"> </span><span class="identifier">every</span><span class="plain"> </span><span class="identifier">work</span><span class="plain"> </span><span class="identifier">of</span><span class="plain"> </span><span class="identifier">interactive</span><span class="plain"> </span><span class="identifier">fiction</span><span class="plain"> </span><span class="identifier">made</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">Inform</span><span class="plain">. </span><span class="identifier">They</span><span class="plain"> </span><span class="identifier">are</span><span class="plain"> </span><span class="identifier">described</span>
<span class="identifier">throughout</span><span class="plain"> </span><span class="identifier">the</span><span class="plain"> </span><span class="identifier">documentation</span><span class="plain"> </span><span class="identifier">supplied</span><span class="plain"> </span><span class="identifier">with</span><span class="plain"> </span><span class="identifier">Inform</span><span class="plain">, </span><span class="identifier">so</span><span class="plain"> </span><span class="identifier">no</span><span class="plain"> </span><span class="identifier">details</span><span class="plain"> </span><span class="identifier">will</span><span class="plain"> </span><span class="identifier">be</span>
<span class="identifier">given</span><span class="plain"> </span><span class="identifier">here</span><span class="plain">.</span>
2019-03-17 14:40:57 +02:00
</pre>
<p class="inwebparagraph"></p>
<hr class="tocbar">
2020-01-26 01:42:42 +02:00
<ul class="toc"><li><a href="S-cg.html">Back to 'Command Grammar'</a></li><li><i>(This section ends Sections.)</i></li></ul><hr class="tocbar">
2019-04-22 17:42:10 +03:00
<!--End of weave-->
2020-03-19 02:11:25 +02:00
</main>
2019-03-17 14:40:57 +02:00
</body>
</html>