mirror of
https://github.com/ganelson/inform.git
synced 2024-07-16 22:14:23 +03:00
280 lines
14 KiB
Markdown
280 lines
14 KiB
Markdown
|
# Release notes for Inform v2.2 (build 3Z95)
|
||
|
|
||
|
This release was made on 14 September 2006, before Inform was open-sourced.
|
||
|
At that time versions of Inform were identified by build codes in the form NLNN.
|
||
|
|
||
|
This is part of the [historical archive of release notes](../version_history.md).
|
||
|
|
||
|
## Language
|
||
|
|
||
|
- A new toolbar button, Index, (re-)makes the current project, but shows the
|
||
|
revised index rather than the ensuing game. It's useful when, for
|
||
|
instance, laying out rooms and map connections, as it allows for an
|
||
|
easier comparison of the source text with the World map.
|
||
|
- The unsupported types "object-specification" and "object-specification-unsub"
|
||
|
have been withdrawn. In all cases where a phrase takes a description of
|
||
|
a set of objects - for instance as what to list in a "[list of S]",
|
||
|
or as what to repeat through in a "repeat with X running through S" -
|
||
|
this is now called simply "description". Moreover, the operations
|
||
|
"random S", "number of S", "total P of S" and "(superlative) S" -
|
||
|
such as "number of men", "a random man", "total carrying capacity of
|
||
|
men", "the heaviest man" - are all now defined as phrases like any other,
|
||
|
rather than being special constructions inside Inform. (This should ease
|
||
|
slightly odd problems experienced by a few people where Inform's parser
|
||
|
could not cope with phrases whose names were too similar to these four
|
||
|
constructions.) Finally, although "description" is not a kind of value,
|
||
|
it is legal to use "description" in new phrases:
|
||
|
To enumerate (collection - a description):
|
||
|
repeat with the item running through the collection
|
||
|
begin;
|
||
|
say "-- [The item].";
|
||
|
end repeat.
|
||
|
We could then "enumerate lighted rooms", say. Note that "collection"
|
||
|
here stands for whatever description is used when the phrase is invoked:
|
||
|
it can in turn be used wherever a description is needed. We could,
|
||
|
for instance, evaluate "the total carrying capacity of the collection".
|
||
|
- Actions can now require three levels of access to something in order to
|
||
|
work, rather than two:
|
||
|
- "Visible" and "touchable" (the default) are as before, and "carried"
|
||
|
has been added. (E.g., "Assaying is an action applying to one carried
|
||
|
thing.") Carried implies touchable which implies visible, in this sense.
|
||
|
- A new accessibility rule, the "carrying requirements rule", checks that
|
||
|
this requirement is met.
|
||
|
- Should it fail, a new activity, "implicitly taking something", will
|
||
|
attempt to have the actor silently take the item(s) required.
|
||
|
- Should this in turn fail, the action as a whole will fail the "carrying
|
||
|
requirements rule".
|
||
|
- In Understand sentences, the tokens "[something held]" and "[things
|
||
|
held]" have been withdrawn. If used, they now produce an explanatory
|
||
|
Problem message which lays out what must change. In most cases, what
|
||
|
will be needed is for the action's declaration to include the carrying
|
||
|
requirement, and then these tokens to revert to plain "[something]"
|
||
|
or "[things]"; but new tokens "[something preferably held]" and
|
||
|
"[things preferably held]" have been created which, though they can
|
||
|
match anything visible, will prefer items held when ambiguous names
|
||
|
are used.
|
||
|
These changes make little difference to the player's perception of what
|
||
|
is happening. They have two advantages: first, it is conceptually clearer
|
||
|
for the action to be where realism constraints are declared, rather than
|
||
|
in grammar for parsing, and it ensures that all grammar using the same
|
||
|
action follows the same rules; second, it moves implicit taking from the
|
||
|
I6 library into more modern I7 terms, thus making it much easier to adapt
|
||
|
and modify the behaviour of implicit taking: this has been a frequent
|
||
|
request.
|
||
|
- The actions "throwing X at Y" and "showing X to Y" now require Y only to
|
||
|
be visible, not to be touchable. (We envisage daggers thrown across
|
||
|
chasms, security passes shown through windows, and so forth.)
|
||
|
- The "blowing" action, intended for woodwind instruments and perhaps the
|
||
|
occasional siphon, has been withdrawn from the built-in set: it no
|
||
|
longer seems to us part of the essential core of actions. We have
|
||
|
similarly removed praying, digging, jumping over, filling and
|
||
|
swimming. (Our main concern with these was that, besides being of
|
||
|
marginal use, they tended to result in inappropriate text being
|
||
|
produced in the few cases where they were relevant.)
|
||
|
- Finally, "remove X" (as distinct from "remove X from Y") is no longer
|
||
|
understood as referring to the taking action. (It caused confusions
|
||
|
with removing in the sense of removing an item of clothing, and
|
||
|
hardly anybody ever used it.)
|
||
|
- Further work has been carried out on providing Glulx support. We now
|
||
|
believe that any work written without the explicit use of Z-code
|
||
|
assembly language (or extensions themselves containing such) should
|
||
|
compile, run and release correctly in with "Glulx" selected on the
|
||
|
Settings panel.
|
||
|
- Moreover, there is (as yet limited) support for displaying images, which
|
||
|
Inform calls "Figures", following an analogy with book conventions. To
|
||
|
use these:
|
||
|
- Place an image file, which must be a JPEG or PNG, in a subfolder
|
||
|
called Figures of the Materials folder for the project. Suppose
|
||
|
this is "Woodlands.png".
|
||
|
- Add the sentence:
|
||
|
Figure of Woodlands is the file "Woodlands.png".
|
||
|
to the source text. (Figure names can consist of any text so
|
||
|
long as they start with the word "Figure": "Figure 3 - Woodlands",
|
||
|
for instance, or "Figure W" would have been just as good.)
|
||
|
- The phrase
|
||
|
display the Figure of Woodlands;
|
||
|
will now show the image, when the work is compiled to Glulx. When
|
||
|
compiled to the Z-machine (which is the default setting on the
|
||
|
Settings panel, of course), nothing will happen: the phrase will
|
||
|
do nothing. The phrase option
|
||
|
display the Figure of Woodlands, one time only;
|
||
|
causes the image to be shown only the first time this phrase is
|
||
|
reached.
|
||
|
- A list of figures, with thumbnails and dimensions, appears in the
|
||
|
Contents index; a warning triangle is shown for any images in the
|
||
|
wrong format, or which are missing from the Figures folder.
|
||
|
- When a Glulx work is released as a blorb (the default setting for the
|
||
|
way releases occur), any such images are automatically included.
|
||
|
- The new kind of value "figure-name" can be used to define phrases
|
||
|
which work with Glulx pictures:
|
||
|
To do something funny with (F - a figure-name): ...
|
||
|
Figure names compile to resource ID numbers as used in the final
|
||
|
released blorb; these will usually be integers 2, 3, 4, ...,
|
||
|
since picture resource number 1 is reserved for the cover art.
|
||
|
- We would like to thank John Cater for contributing his infglk.h
|
||
|
definitions to the project: these definitions are included in the
|
||
|
I6 source code compiled by I7 on any project set to Glulx.
|
||
|
- In line with the existing text substitutions "[the Thing]", "[The Thing]",
|
||
|
"[a Thing]", "[an Entity]", for the name of something together with the
|
||
|
given article and casing, "[A Thing]" and "[An Entity]" have been added,
|
||
|
providing for a capitalised indefinite article.
|
||
|
- Technically a new feature rather than a bug fix: if an object is established
|
||
|
as a proper noun, in that its name as specified by "called" does not
|
||
|
begin with a standard English article - for instance "A man called your
|
||
|
local vicar is in the Belfry", where "your local vicar" is treated as
|
||
|
a proper noun - then this name will be capitalised if the object's
|
||
|
name is printed with "[The whatever]", "A whatever" or "An whatever".
|
||
|
(Thus "Your local vicar" would be printed instead of "your local vicar".)
|
||
|
- Kinds can now have plural names. This will relatively seldom be useful, but
|
||
|
the result is that the text "A house is a kind of thing. Some windows
|
||
|
are a kind of thing. Some windows are part of every house." - will now
|
||
|
result in a house's windows being deemed to have plural names (which for
|
||
|
instance means they will produce better messages with the Plurality
|
||
|
extension).
|
||
|
- Conversely, fewer plural names are now understood by the run-time parser:
|
||
|
an over-eagerness to recognise plurals of the names of unique, one-off
|
||
|
items was sometimes leading to name clashes and consequently misinterpreted
|
||
|
input.
|
||
|
- The SCENES testing command now summarises the current situation when scene
|
||
|
tracing is switched on - the story so far, as it were.
|
||
|
- Changes in the type-checker should cause Inform to compile slightly more
|
||
|
efficient code: it also checks a few more cases, and notably that the
|
||
|
parameters of an action in a "try" phrase are genuinely of the right
|
||
|
kind of value for the action in question.
|
||
|
|
||
|
## Documentation, examples and extensions
|
||
|
|
||
|
- A new chapter (Chapter 5: Text) has been created in the documentation: this
|
||
|
is made up of material previously in the middle of Chapter 4, with a
|
||
|
variety of sections (on Unicode, quotations, "say" and text substitutions)
|
||
|
pulled in from surrounding chapters.
|
||
|
- More detailed material has been added to the chapter on Rulebooks to cover
|
||
|
the distinction between object- and action-based rulebooks.
|
||
|
- Review sections added to chapters 2, 5, 6, 7, 8 and 9.
|
||
|
|
||
|
### Examples
|
||
|
|
||
|
- "Alpaca Farm" -- modified for new held rules
|
||
|
- "Ballpark" -- added commentary to better explain the function of
|
||
|
the table
|
||
|
- "Beachfront" -- added commentary to explain the order of
|
||
|
operations of the rules
|
||
|
- "Beneath the Surface" -- modified to account for changes to the
|
||
|
held token
|
||
|
- "Big Sky Country" -- modified to account for the removal of the
|
||
|
DIG action
|
||
|
- "Bruneseau's Journey" -- modified for the fact that BLOW has been
|
||
|
removed
|
||
|
- "Bumping into Walls" -- substantially simplified entire example to
|
||
|
demonstrate simpler handling of the problem
|
||
|
- "Cloak of Darkness" -- modified for new held rules
|
||
|
- "Crane's Leg 1" and "Crane's Leg 2" -- removed "a thing has a
|
||
|
thing called the ideal" and replaced this with a relation and some
|
||
|
discussion of why it is better to use relations than object
|
||
|
properties
|
||
|
- "Curare" -- added to demonstrate a possible use of descriptions
|
||
|
- "Dig" -- removed, since it showed how to get around a problem that
|
||
|
is no longer a problem
|
||
|
- "Down Below" -- added a demonstration of >FLIP grammar for the
|
||
|
light switch, and corrected a bug that would have allowed the
|
||
|
switch to be interacted-with from rooms other than the basement
|
||
|
- "Lakeside Living" -- modified to account for the removal of the
|
||
|
swimming action
|
||
|
- "Model Shop" -- added a few extra lines showing how to make
|
||
|
alternative names for the created buttons
|
||
|
- "Morning After" -- comment added to explain the meaning of "carry
|
||
|
out"
|
||
|
- "Pine" -- modified to account for the removal of the swimming action
|
||
|
- "Polarity" -- comment added to explain "first carry out going
|
||
|
rule"
|
||
|
- "Reflections" -- modified to account for the removal of the blowing
|
||
|
action
|
||
|
- "Revenge of the Fussy Table" -- redundancy removed from one
|
||
|
definition
|
||
|
- "Space Patrol - Stranded on Jupiter!" -- modified to account for
|
||
|
the removal of the DIG action
|
||
|
- "Tamed" -- modified also to model the case of a room whose
|
||
|
exterior is visible in another room (ie, nested locations)
|
||
|
- "3 AM" -- modified to reflect the changes to the held token
|
||
|
- "Trachypachidae Maturin 1803" -- modified to reflect changes in
|
||
|
the held token
|
||
|
- "Transmutation" -- added example on group relations, thanks to
|
||
|
Jesse McGrew
|
||
|
- "Under Contract" -- modified for the fact that various actions
|
||
|
have been removed
|
||
|
- "The Unexamined Life" -- modified to reflect changes in the held
|
||
|
token
|
||
|
- "A View of Green Hills" -- comment added explaining what noun
|
||
|
means in this context
|
||
|
- "Waterskin" -- modified to reflect removal of blowing action
|
||
|
- "Would you...?" -- more comment added explaining the behavior of
|
||
|
edible things
|
||
|
- "Zodiac" -- added missing line to the first version of the
|
||
|
scenario
|
||
|
- "Zorn of Zorna" -- modified to reflect removal of blowing action
|
||
|
- A new information-only example has been added to the chapter on Rulebooks,
|
||
|
giving a Backus-Naur form grammar for Inform's rule preambles
|
||
|
|
||
|
### Worked Examples
|
||
|
|
||
|
- "Bronze" -- modified to reflect myriad changes to action definitions
|
||
|
and held tokens
|
||
|
- "Glass", "When in Rome 1", "When in Rome 2" -- modified to remove a few
|
||
|
responses to now-undefined actions
|
||
|
- "Damnatio Memoriae" -- modified to reflect changes to held tokens; fixed
|
||
|
minor bug about thinking on the first turn
|
||
|
- "Reliques of Tolti-Aph" -- modified to reflect action changes
|
||
|
|
||
|
### Extensions
|
||
|
|
||
|
- "Complex Listing" modified to deal with the new specification type, and
|
||
|
advanced to version 3. Please note that "register things marked for
|
||
|
listing" is now not necessary in most cases: see the documentation.
|
||
|
|
||
|
## Problem messages
|
||
|
|
||
|
- Problem messages added for duplicate definitions of verbs or prepositional
|
||
|
usages.
|
||
|
- Problem messages to do with misphrased property declarations improved.
|
||
|
|
||
|
## Bug fixes
|
||
|
|
||
|
- Bug fixed in which phrases to decide if something-or-other would sometimes
|
||
|
not properly be parsed where they naturally begin with "the": so that,
|
||
|
for instance, the condition "if the action requires a touchable noun..."
|
||
|
would sometimes fail because of the "the".
|
||
|
- Bug fixed to do with spurious paragraphs such as "On the mantelpiece is a
|
||
|
brass clock." being produced in room descriptions when the mantelpiece
|
||
|
is scenery, and the brass clock has already been mentioned.
|
||
|
- Bug fixed whereby the creation of three things X, Y and Z with text in the
|
||
|
pattern "an X of Y and a Z" would sometimes cause Z to be created with
|
||
|
no article, i.e., as if its name were a proper noun - ignoring the "a".
|
||
|
- Bug fixed whereby testing if "X is in R", where X is a thing and R is a
|
||
|
region, would always come up negative even if X was in a room inside
|
||
|
that region. It now makes the obviously intended test.
|
||
|
- Bug fixed to do with incorrect casing when printing a literal value in a
|
||
|
pattern which includes words already occurring earlier in the source
|
||
|
with different casing from that in the pattern.
|
||
|
- Bug fixed causing programming errors to appear at run-time when attempting
|
||
|
to push an enterable container between rooms while within it (by
|
||
|
punting down a river, perhaps).
|
||
|
- Bug fixed causing occasional hangs, under Glulx only, when the player
|
||
|
character in inside or on something and also has component parts.
|
||
|
- Bug fixed causing snippet replacement to leave the wrong number of words
|
||
|
behind, under Glulx only.
|
||
|
|
||
|
## Mac OS X app
|
||
|
|
||
|
- (Mac OS X only) A new toolbar gadget, Headings, provides a breadcrumb-style
|
||
|
drop-down menu to navigate the headings and subheadings in the source.
|
||
|
|
||
|
## Windows app
|
||
|
|
||
|
- (Windows only) Clicking on a link in a problem report that points to an
|
||
|
extension does not open a new window if the extension is already open in
|
||
|
another window.
|
||
|
|
||
|
|
||
|
|
||
|
|