mirror of
https://github.com/ganelson/inform.git
synced 2024-07-17 06:24:24 +03:00
1129 lines
203 KiB
HTML
1129 lines
203 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Phrase Definitions</title>
|
|
<meta name="viewport" content="width=device-width initial-scale=1">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta http-equiv="Content-Language" content="en-gb">
|
|
<link href="../inweb.css" rel="stylesheet" rev="stylesheet" type="text/css">
|
|
|
|
</head>
|
|
<body>
|
|
<nav role="navigation">
|
|
<h1><a href="../index.html">
|
|
<img src="../docs-src/Figures/Inform.png" height=72">
|
|
</a></h1>
|
|
<ul><li><a href="../compiler.html">compiler tools</a></li>
|
|
<li><a href="../other.html">other tools</a></li>
|
|
<li><a href="../extensions.html">extensions and kits</a></li>
|
|
<li><a href="../units.html">unit test tools</a></li>
|
|
</ul><h2>Extensions</h2><ul>
|
|
<li><a href="../basic_inform/index.html">basic_inform</a></li>
|
|
<li><a href="index.html"><span class="selectedlink">standard_rules</span></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">
|
|
|
|
<!--Weave of 'Phrase Definitions' generated by 7-->
|
|
<ul class="crumbs"><li><a href="../index.html">Home</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>
|
|
|
|
<ul class="toc"><li><a href="#SP5">§5. Using the list-writer</a></li><li><a href="#SP7">§7. Grouping in the list-writer</a></li><li><a href="#SP8">§8. Filtering in the list-writer</a></li><li><a href="#SP9">§9. Figures and sound effects</a></li><li><a href="#SP10">§10. Actions, activities and rules</a></li><li><a href="#SP14">§14. The model world</a></li><li><a href="#SP26">§26. Understanding</a></li><li><a href="#SP31">§31. Message support</a></li><li><a href="#SP32">§32. Deprecated or private-API-like phrases</a></li></ul><hr class="tocbar">
|
|
|
|
<p class="inwebparagraph"><a id="SP1"></a><b>§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:
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<span class="identifier">Part</span><span class="plain"> </span><span class="identifier">Seven</span><span class="plain"> - </span><span class="identifier">Phrasebook</span>
|
|
|
|
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">1</span><span class="plain"> - </span><span class="identifier">Saying</span>
|
|
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP2"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP3"></a><b>§3. </b>And now some oddball special texts which must sometimes be said.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP4"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<span class="identifier">Section</span><span class="plain"> </span><span class="constant">4</span><span class="plain"> - </span><span class="identifier">Responses</span>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP5"></a><b>§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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP6"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
<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">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="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">TEXT_TY_Say_Capitalised</span><span class="plain">((+ </span><span class="string">"[list-writer list of marked objects]"</span><span class="plain"> +));</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">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>
|
|
<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">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>
|
|
<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">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="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">TEXT_TY_Say_Capitalised</span><span class="plain">((+ </span><span class="string">"[list-writer articled list of marked objects]"</span><span class="plain"> +));</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">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>
|
|
<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">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>
|
|
<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">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>
|
|
<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">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>
|
|
<span class="plain">-).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP7"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
<span class="plain">-).</span>
|
|
<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>
|
|
<span class="plain">-).</span>
|
|
<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>
|
|
<span class="plain">-).</span>
|
|
<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"> &~ (</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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP8"></a><b>§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>.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP9"></a><b>§9. Figures and sound effects. </b></p>
|
|
|
|
<pre class="display">
|
|
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">2</span><span class="plain"> - </span><span class="identifier">Multimedia</span>
|
|
|
|
<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>
|
|
|
|
<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">-->{</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">-->{</span><span class="identifier">F</span><span class="plain">} -).</span>
|
|
|
|
<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>
|
|
|
|
<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">-->{</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">-->{</span><span class="identifier">SFX</span><span class="plain">} -).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP10"></a><b>§10. Actions, activities and rules. </b>We begin with the firing off of new actions. The current action runs silently
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP11"></a><b>§11. </b>The requirements of the current action can be tested. The following
|
|
may be reimplemented using a verb "to require" at some future point.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP12"></a><b>§12. </b>Within the rulebooks to do with an action, returning <code class="display"><span class="extract">true</span></code> from a rule
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP13"></a><b>§13. </b></p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP14"></a><b>§14. The model world. </b>Phrase definitions with wordings like "the story has ended" are a
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP15"></a><b>§15. </b>Times of day.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP16"></a><b>§16. </b>Comparing times of day is inherently odd, because the day is
|
|
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">
|
|
<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">))<(({</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">))>(({</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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP17"></a><b>§17. </b>Durations are in effect casts from "number" to "time".
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP18"></a><b>§18. </b>Timed events.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP19"></a><b>§19. </b>Scenes.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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">-->({</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">-->({</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">-->({</span><span class="identifier">sc</span><span class="plain">}-1) > </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">-->({</span><span class="identifier">sc</span><span class="plain">}-1) <= </span><span class="constant">1</span><span class="plain">) -).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP20"></a><b>§20. </b>Timing of scenes.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP21"></a><b>§21. </b>Player's identity and location.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP22"></a><b>§22. </b>Moving and removing things.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP23"></a><b>§23. </b>The map.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP24"></a><b>§24. </b>Route-finding.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP25"></a><b>§25. </b>The object tree.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP26"></a><b>§26. Understanding. </b>First, asking yes/no questions.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<span class="identifier">Chapter</span><span class="plain"> </span><span class="constant">5</span><span class="plain"> - </span><span class="identifier">Understanding</span>
|
|
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP27"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP28"></a><b>§28. </b>Changing the player's command.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP29"></a><b>§29. </b>Scope and pronouns.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP30"></a><b>§30. </b>The multiple object list is a data structure used in the parser when
|
|
processing commands like TAKE ALL.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP31"></a><b>§31. Message support. </b>"Unindexed" here is a euphemism for "undocumented". This is where
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP32"></a><b>§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.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP33"></a><b>§33. </b>These are actually sensible concepts in the world model, and could even
|
|
be opened to public use, but they're quite complicated to explain.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
<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>
|
|
<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>
|
|
<span class="plain"> (- (</span><span class="identifier">CoreOfParentOfCoreOf</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">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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP34"></a><b>§34. </b>These are in effect global variables, but aren't defined as such, to
|
|
prevent people using them. Their contents are only very briefly meaningful,
|
|
and they would be dangerous friends to know.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP35"></a><b>§35. </b>This is a unique quasi-action, using the secondary action processing
|
|
stage only. A convenience, but also an anomaly, and let's not encourage
|
|
its further use.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP36"></a><b>§36. </b>An ugly little trick needed because of the mismatch between I6 and I7
|
|
property implementation, and because of legacy code from the old I6 library.
|
|
Please don't touch.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP37"></a><b>§37. </b>The following cries out for an enumerated kind of value, but for historical
|
|
reasons it isn't one.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP38"></a><b>§38. </b>Action conversion is a trick used in the Standard Rules to simplify the
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP39"></a><b>§39. </b>The "surreptitiously" phrases shouldn't be used except in the Standard Rules
|
|
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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP40"></a><b>§40. </b>These are text substitutions needed to make the capitalised lists work.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
<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">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>
|
|
<span class="plain">-).</span>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP41"></a><b>§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">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP42"></a><b>§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">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP43"></a><b>§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">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP44"></a><b>§44. </b>This is convenient for debugging Inform, but for no other purpose. It
|
|
toggles verbose logging of the type-checker.
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP45"></a><b>§45. </b>And so, at last...
|
|
</p>
|
|
|
|
<pre class="display">
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<p class="inwebparagraph"><a id="SP46"></a><b>§46. </b>...except that this is not quite true, because like most extensions they
|
|
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">
|
|
<span class="plain">---- </span><span class="identifier">DOCUMENTATION</span><span class="plain"> ----</span>
|
|
|
|
<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>
|
|
</pre>
|
|
|
|
<p class="inwebparagraph"></p>
|
|
|
|
<hr class="tocbar">
|
|
<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">
|
|
<!--End of weave-->
|
|
<script>
|
|
MathJax = {
|
|
tex: {
|
|
inlineMath: '$', '$'], ['\\(', '\\)'
|
|
},
|
|
svg: {
|
|
fontCache: 'global'
|
|
}
|
|
};
|
|
</script>
|
|
<script type="text/javascript" id="MathJax-script" async
|
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js">
|
|
</script>
|
|
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|