<pclass="purpose">Miscellaneous constant definitions, usually providing symbolic names for otherwise inscrutable numbers, which are used throughout the template layer.</p>
<pclass="commentary firstcommentary"><aid="SP2"class="paragraph-anchor"></a><b>§2. Nothing. </b>This is defined automatically by the Inform 6 compiler, but not by other final
<pclass="commentary firstcommentary"><aid="SP3"class="paragraph-anchor"></a><b>§3. Powers of Two. </b>I6 lacks support for logical shifts, and the Z-machine opcodes which bear
<pclass="commentary firstcommentary"><aid="SP4"class="paragraph-anchor"></a><b>§4. Text Styles. </b>These are the styles of text distinguished by the template layer, though
<pclass="commentary firstcommentary"><aid="SP5"class="paragraph-anchor"></a><b>§5. Colour Numbers. </b>These are traditional colour names: quite who it was who thought that azure
<pclass="commentary firstcommentary"><aid="SP6"class="paragraph-anchor"></a><b>§6. Window Numbers. </b>Although Glulx can support elaborate tessalations of windows on screen (if
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">WIN_ALL</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Both windows at once</span>
<pclass="commentary firstcommentary"><aid="SP7"class="paragraph-anchor"></a><b>§7. Paragraphing Flags. </b>I am not sure many dictionaries would countenance "to paragraph" as a
<pclass="commentary firstcommentary"><aid="SP8"class="paragraph-anchor"></a><b>§8. Descriptors in the Language of Play. </b>The following constants are used in the <spanclass="extract"><spanclass="extract-syntax">LanguageDescriptors</span></span> table found
<pclass="commentary firstcommentary"><aid="SP9"class="paragraph-anchor"></a><b>§9. Auxiliary file structure. </b>The I7 kind of value "auxiliary-file" is an <spanclass="extract"><spanclass="extract-syntax">--></span></span> array, holding a memory
structure containing information about external files. The following
constants specify memory offsets and values. Note the safety value stored
as the first word of the structure: this helps protect the routines below
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_MAGIC</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">First word holds a safety constant</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_MAGIC_VALUE</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">16339</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Should be first word of any valid file structure</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_STATUS</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">1</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">One of the following:</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_STATUS_IS_CLOSED</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">1</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Currently closed, or perhaps doesn't exist</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_BINARY</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">2</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">False for text files (I7 default), true for binary</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_STREAM</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">3</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Stream for an open file (meaningless otherwise)</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_FILENAME</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">4</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Packed address of constant string</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_IFID_OF_OWNER</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">5</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">UUID_ARRAY if owned by this project, or</span>
<spanclass="plain-syntax"></span><spanclass="comment-syntax">string array of IFID of owner, or NULL to leave open</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">AUXF_RESOURCE_ID</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">6</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Only for internal files, identified by Blorb resource</span>
</pre>
<pclass="commentary firstcommentary"><aid="SP10"class="paragraph-anchor"></a><b>§10. Run-Time Problem Numbers. </b>The enumeration sequence here must correspond to that in the file of RTP
<pclass="commentary firstcommentary"><aid="SP11"class="paragraph-anchor"></a><b>§11. Scope Searching Reasons. </b>The parser makes use of a mechanism for searching through the objects currently
<pclass="commentary">I6's <spanclass="extract"><spanclass="extract-syntax">EACH_TURN_REASON</span></span>, <spanclass="extract"><spanclass="extract-syntax">REACT_BEFORE_REASON</span></span> and <spanclass="extract"><spanclass="extract-syntax">REACT_AFTER_REASON</span></span>
<pclass="commentary firstcommentary"><aid="SP12"class="paragraph-anchor"></a><b>§12. Token Types. </b>Tokens are the indecomposable pieces of a grammar line making up a possible
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ILLEGAL_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Types of grammar token: illegal</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ELEMENTARY_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">1</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> (one of those below)</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">PREPOSITION_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">2</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> e.g. 'into'</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ROUTINE_FILTER_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">3</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> e.g. noun=CagedCreature</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ATTR_FILTER_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">4</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> e.g. edible</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">SCOPE_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">5</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> e.g. scope=Spells</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">GPR_TT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">6</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> a general parsing routine</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ENDIT_TOKEN</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">15</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Value used to mean "end of grammar line"</span>
<pclass="commentary firstcommentary"><aid="SP13"class="paragraph-anchor"></a><b>§13. GPR Return Values. </b>GRP stands for "General Parsing Routine", an I6 routine which acts as a
<pclass="commentary">In Library 6/11, <spanclass="extract"><spanclass="extract-syntax">GPR_NOUN</span></span> is defined as <spanclass="extract"><spanclass="extract-syntax">$ff00</span></span>, but this would fail on
Glulx: it needs to be <spanclass="extract"><spanclass="extract-syntax">$ffffff00</span></span> on 32-bit virtual machines. It appears that
<spanclass="extract"><spanclass="extract-syntax">GPR_NOUN</span></span> to <spanclass="extract"><spanclass="extract-syntax">GPR_CREATURE</span></span>, though documented in the old {\it Inform
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">GPR_FAIL</span><spanclass="plain-syntax"> = -1; </span><spanclass="comment-syntax">Return values from General Parsing</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">GPR_NOUN</span><spanclass="plain-syntax"> = -256; </span><spanclass="comment-syntax">Reparse, but as </span><spanclass="extract"><spanclass="extract-syntax">NOUN_TOKEN</span></span><spanclass="comment-syntax"> this time</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">GPR_HELD</span><spanclass="plain-syntax"> = </span><spanclass="identifier-syntax">GPR_NOUN</span><spanclass="plain-syntax"> + </span><spanclass="constant-syntax">1</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">And so on</span>
<pclass="commentary firstcommentary"><aid="SP14"class="paragraph-anchor"></a><b>§14. List Styles. </b>These constants make up bitmaps of the options in use when listing objects.
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">NEWLINE_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000000000001</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">New-line after each entry</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">INDENT_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000000000010</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Indent each entry by depth</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">FULLINV_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000000000100</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Full inventory information after entry</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ENGLISH_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000000001000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">English sentence style, with commas and and</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">RECURSE_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000000010000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Recurse downwards with usual rules</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">TERSE_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000001000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">More terse English style</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">PARTINV_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000010000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Only brief inventory information after entry</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">DEFART_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000000100000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Use the definite article in list</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">WORKFLAG_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000001000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">At top level (only), only list objects</span>
<spanclass="plain-syntax"></span><spanclass="comment-syntax">which have the "workflag" attribute</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">ISARE_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000010000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Print " is" or " are" before list</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">CONCEAL_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0000100000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Omit objects with "concealed" or "scenery":</span>
<spanclass="plain-syntax"></span><spanclass="comment-syntax">if WORKFLAG_BIT also set, then does not</span>
<spanclass="plain-syntax"></span><spanclass="comment-syntax">apply at top level, but does lower down</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">NOARTICLE_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0001000000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Print no articles, definite or not</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">EXTRAINDENT_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0010000000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">New in I7: extra indentation of 1 level</span>
<spanclass="reserved-syntax">Constant</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">CFIRSTART_BIT</span><spanclass="plain-syntax"> = </span><spanclass="constant-syntax">$$0100000000000000</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Capitalise first article in list</span>
<pclass="commentary firstcommentary"><aid="SP16"class="paragraph-anchor"></a><b>§16. Empty Text. </b>The I6 compiler does not optimise string compilation: if it needs to compile
<pclass="commentary firstcommentary"><aid="SP17"class="paragraph-anchor"></a><b>§17. Empty Table. </b>Similarly: the default value for the "table" kind of value, a Table
<pclass="commentary firstcommentary"><aid="SP18"class="paragraph-anchor"></a><b>§18. Empty Set. </b>The falsity proposition describes the empty set of objects, and is the
<pclass="commentary firstcommentary"><aid="SP19"class="paragraph-anchor"></a><b>§19. Template Attributes. </b>An I6 attribute is equivalent to an I7 "either/or property", though the
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">absent</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Used to mark objects removed from play</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">animate</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">I6-level marker for I7 kind "person"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">static</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">= I7 "fixed in place" vs "portable"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">supporter</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">I6-level marker for I7 kind "supporter"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">switchable</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">I6-level marker for I7 kind "device"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">talkable</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Not currently used by I7, but retained for possible future use</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">transparent</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">= I7 "transparent" vs "opaque"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">worn</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">marks that an object tree edge represents wearing</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">male</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">not directly used by I7, but available for languages with genders</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">female</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">= I7 "female" vs "male"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">remove_proper</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">remember to remove proper again when using ChangePlayer next</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">privately_named</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">New in I7</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">mentioned</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">New in I7</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">pushable</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">New in I7</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">mark_as_room</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Used in I7 to speed up testing "ofclass K1_room"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">mark_as_thing</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Used in I7 to speed up testing "ofclass K2_thing"</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">workflag</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">= I7 "marked for listing", but basically temporary workspace</span>
<spanclass="identifier-syntax">Attribute</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">workflag2</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7 and also temporary workspace</span>
<pclass="commentary firstcommentary"><aid="SP20"class="paragraph-anchor"></a><b>§20. Template Properties. </b>As remarked above, these more often correspond to value properties in I7.
<spanclass="extract"><spanclass="extract-syntax">when_off</span></span>, <spanclass="extract"><spanclass="extract-syntax">when_on</span></span>, <spanclass="extract"><spanclass="extract-syntax">when_open</span></span>. In May 2008, the direction properties
<spanclass="extract"><spanclass="extract-syntax">n_to</span></span>, <spanclass="extract"><spanclass="extract-syntax">s_to</span></span>, <spanclass="extract"><spanclass="extract-syntax">e_to</span></span>, ..., <spanclass="extract"><spanclass="extract-syntax">out_to</span></span> joined the list of the missing.
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">add_to_scope</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to place component parts in scope</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">article</span><spanclass="plain-syntax"></span><spanclass="string-syntax">"a"</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement articles</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">component_child</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7: forest structure holding "part of" relation</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">component_parent</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">component_sibling</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">door_dir</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used to implement two-sided doors, but holds direction object, not a property</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">door_to</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement two-sided doors</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">found_in</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement two-sided doors and backdrops</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">list_together</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement "grouping together" activity</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">map_region</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">parse_name</span><spanclass="plain-syntax"></span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement "Understand... as..." grammars</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">plural</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">used as in I6 to implement plural names for duplicate objects</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">regional_found_in</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">room_index</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7: storage for route-finding</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">saved_short_name</span><spanclass="plain-syntax"></span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">cache for ChangePlayer</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">vector</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">new in I7: storage for route-finding</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">KD_Count</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">Instance count of the kind of the current object</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">IK1_Count</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">These are instance counts within kinds K1, K2, ...</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">IK2_Count</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">and it is efficient to declare the common ones with Property</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">IK4_Count</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">since this results in a slightly smaller story file</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">IK1_link</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">These are for linked lists used to make searches faster</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">IK2_link</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">and again it's memory-efficient to declare the common ones</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">articles</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">not used by I7, but an interesting hook in the parser</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">grammar</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">not used by I7, but an interesting hook in the parser</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">inside_description</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">not used by I7, but an interesting hook in the locale code</span>
<spanclass="identifier-syntax">Property</span><spanclass="plain-syntax"></span><spanclass="identifier-syntax">short_name_indef</span><spanclass="plain-syntax"></span><spanclass="constant-syntax">0</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax">not used by I7, but an interesting hook in the listmaker</span>