Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Inform 7] Issues with Custom Library Messages and supporters

10 views
Skip to first unread message

J. J. Lawless

unread,
Aug 23, 2007, 2:30:34 AM8/23/07
to
Hi! I am currently using the current vesrion of Custom Library
Messages by David Fisher and Inform 7 build 4U65(the latest build I've
tried which seems to work with the extension).
I am using the extention to set a first person past tense to the
messages, which works wonderfully... whenever supporters aren't
involved. Here is sample from a transcript, where the bed is an
enterable supporter:

>>enter bed
>I got onto Plum's bed.
>
>>drop mirror
>I dropped the mirror.
>
>>l
>Plum's Room (on Plum's bed)
>On Plum's bed I could see a mirror.
>
>>out
>You get off Plum's bed.
>
>Plum's Room
>On Plum's bed is a mirror.

Note the two default messages, one when listing items on the supporter
while the player was not on the supporter, and one while in the
process of getting off of the bed.

Michael Martin has suggested that the next build of Inform might fix
the issue(since these cases are handled in the extension, it seems)
but in the meantime any suggestions would be helpful.

-J

David Fisher

unread,
Aug 23, 2007, 7:28:18 AM8/23/07
to
"J. J. Lawless" <ASC2...@hotmail.com> wrote in message
news:m29qc3h7ueeacqs38...@4ax.com...

> Hi! I am currently using the current vesrion of Custom Library
> Messages by David Fisher and Inform 7 build 4U65(the latest build I've
> tried which seems to work with the extension).
> I am using the extention to set a first person past tense to the
> messages, which works wonderfully... whenever supporters aren't
> involved. Here is sample from a transcript, where the bed is an
> enterable supporter:
...

>>>out
>>You get off Plum's bed.
>>
>>Plum's Room
>>On Plum's bed is a mirror.
>
> Note the two default messages, one when listing items on the supporter
> while the player was not on the supporter, and one while in the
> process of getting off of the bed.

I can see the reason - a fix is on its way. Some things have changed in the
"Standard Rules" code. (The fix will be for I7 version 4W37, by the way -
not sure whether it will be back compatible with 4U65).

The second message, "On Plum's bed is a mirror", does not seem like the
standard one - by default I think it would say "a bed (on which is a
mirror)". Are you using another extension to print the contents of things?
If so, you might need to modify that extension to get what you want for this
message (if there are no special hooks to help modify the text).

David Fisher


David Fisher

unread,
Aug 23, 2007, 8:12:46 AM8/23/07
to
"David Fisher" <david...@australiaonline.net.au> wrote in message
news:11878684...@kangaroo.ozonline.com.au...

> "J. J. Lawless" <ASC2...@hotmail.com> wrote in message
> news:m29qc3h7ueeacqs38...@4ax.com...
>> Hi! I am currently using the current vesrion of Custom Library
>> Messages by David Fisher and Inform 7 build 4U65(the latest build I've
>> tried which seems to work with the extension).
>> I am using the extention to set a first person past tense to the
>> messages, which works wonderfully... whenever supporters aren't
>> involved. Here is sample from a transcript, where the bed is an
>> enterable supporter:
> ...
>>>>out
>>>You get off Plum's bed.
>>>
>>>Plum's Room
>>>On Plum's bed is a mirror.
...

> The second message, "On Plum's bed is a mirror", does not seem like
> the standard one - by default I think it would say "a bed (on which is a
> mirror)".

Hmm. This made me go and look for the code which normally prints "(on which
is ...)", which turns out to be the I6 routine WriteAfterEntry (in
Library/Natural/verblim.h), which uses hard coded values for "is" and "are".

This is a longish routine, which I am hesistant to just replace wholesale
(since it could potentially change in the future, which would then be
silently overridden by the extension. Future changes to the code are not
impossible, since there is already a comment referring to I7 in the code).

Any thoughts?

(The effect of not replacing it is to print "(on which is/are ...)" instead
of the correct "(on which was/were ...)" when using past tense with this
extension).

David Fisher


Zylon

unread,
Aug 23, 2007, 8:19:23 AM8/23/07
to
I've said this before: I think customizing library messages should be part
of the system and/or library itself, not an extension. That's only partly
because of some of what you're mentioning here. Changes to the base library
could change how customizations to the base library work, so the two really
go hand in hand and, as a development effort, shouldn't be decoupled to the
extent that they apparently are.


Emily Short

unread,
Aug 23, 2007, 8:48:26 AM8/23/07
to
On Aug 23, 1:12 pm, "David Fisher"
<davidfis...@australiaonline.net.au> wrote:
> "David Fisher" <davidfis...@australiaonline.net.au> wrote in message
>
> news:11878684...@kangaroo.ozonline.com.au...
>
>
>
> > "J. J. Lawless" <ASC2S...@hotmail.com> wrote in message

It's likely that this will change in the future, yes, but not in the
next build.

What this means in practical terms is that it's unlikely to alter
before, say, comp games need to be compiled, so if there's a hack
someone wants to make available, it may be worth doing that for the
short term.

In the longer term, I am hoping to see the room description code
broken out into a more comprehensible and readily changeable set of
pieces.

The more long-term plan, as I understand it, is indeed to pull control
of library defaults into the main library; this is one of those things
that are genuinely quite difficult to keep sync'd up if they're done
only by extension, and the main question is how best to implement the
core functionality.

David Fisher

unread,
Aug 23, 2007, 8:50:39 AM8/23/07
to
"Zylon" <zyl...@hotmail.com> wrote in message
news:raCdnS-x0_vZ5lDb...@comcast.com...

The main problem I've found is to do with literal strings appearing in the
code ... the "risky" component of the Custom Library Messages extension is
to do with replacements to various small rules and routines, which would not
be necessary if all of the literal text was confined to the main
library-message-printing I6 routine (LanguageLM in english.h).

I think the general "message" design is brilliant - routing all message
printing through a single output routine. This also allows non-English
languages to be supported more easily. Unfortunately, lots of the new I7
rules contain literal text, which means they need to be individually
replaced if you want to change the messages. This introduces a bit of a
danger of silently overriding a future version of one of these routines.

So to me, the problem is more to do with the code design than whether
customisations should be in an extension or not ...

David Fisher


Emily Short

unread,
Aug 23, 2007, 8:55:47 AM8/23/07
to
On Aug 23, 1:50 pm, "David Fisher"

<davidfis...@australiaonline.net.au> wrote:
> This also allows non-English
> languages to be supported more easily. Unfortunately, lots of the new I7
> rules contain literal text, which means they need to be individually
> replaced if you want to change the messages. This introduces a bit of a
> danger of silently overriding a future version of one of these routines.
>
> So to me, the problem is more to do with the code design than whether
> customisations should be in an extension or not ...

Yeah, this is something that needs to be fixed (but all at once and in
a grand overhaul).


J. J. Lawless

unread,
Aug 23, 2007, 11:20:05 AM8/23/07
to
On Thu, 23 Aug 2007 21:28:18 +1000, "David Fisher"
<david...@australiaonline.net.au> wrote:

>I can see the reason - a fix is on its way. Some things have changed in the
>"Standard Rules" code. (The fix will be for I7 version 4W37, by the way -
>not sure whether it will be back compatible with 4U65).

Thank you very much!

I am currently only using 4U65 for compatability with CLM, so when
they both update I see no reason not to upgrade both I7 and CLM. I've
been trying to keep compatability as I wrote, so hopefully nothing
will break when I do so.

>The second message, "On Plum's bed is a mirror", does not seem like the
>standard one - by default I think it would say "a bed (on which is a
>mirror)". Are you using another extension to print the contents of things?

That is because the bed is scenery I think.

-J

J. J. Lawless

unread,
Aug 23, 2007, 11:28:33 AM8/23/07
to
On Thu, 23 Aug 2007 22:12:46 +1000, "David Fisher"
<david...@australiaonline.net.au> wrote:

>Hmm. This made me go and look for the code which normally prints "(on which
>is ...)", which turns out to be the I6 routine WriteAfterEntry (in
>Library/Natural/verblim.h), which uses hard coded values for "is" and "are".
>
>This is a longish routine, which I am hesistant to just replace wholesale
>(since it could potentially change in the future, which would then be
>silently overridden by the extension. Future changes to the code are not
>impossible, since there is already a comment referring to I7 in the code).
>
>Any thoughts?

You seem to be fairly on top of build changes to Inform, so I really
couldn't say.

-J

David Fisher

unread,
Aug 23, 2007, 7:03:23 PM8/23/07
to
"J. J. Lawless" <ASC2...@hotmail.com> wrote in message
news:ab9rc3dtidmg2r5ca...@4ax.com...

Oops, that's right ...

This one turns out to be printed by the I6 routine "Locale", which uses
WriteListFrom to print a list, which ultimately uses the constants IS__TX
and ARE__TX to print "is" or "are" in routine WriteListR ... being
constants, these can't be changed dynamically during the game, so the
solution is to either replace this routine (and any others which use these
constants), or change the values of the constants.

This is the way to do that, if your game stays in past tense all of the
time:

* Go to the directory Inform 7/Library/Natural
* Edit the file English.h (in a normal text editor)
* Search for "IS__TX" (about line 365)
* There are several quoted strings containing "is" and "are". Change these
to "was" and "were".

Note that you will have to do this change every time you update your Inform
7 version.

I'll update the Custom Library Messages extension to handle the "get off the
bed" problem, and put in a note about the is/are problem in the past tense
...

David Fisher


J. J. Lawless

unread,
Aug 23, 2007, 7:50:37 PM8/23/07
to
On Fri, 24 Aug 2007 09:03:23 +1000, "David Fisher"
<david...@australiaonline.net.au> wrote:

>This is the way to do that, if your game stays in past tense all of the
>time:
>
>* Go to the directory Inform 7/Library/Natural
>* Edit the file English.h (in a normal text editor)
>* Search for "IS__TX" (about line 365)
>* There are several quoted strings containing "is" and "are". Change these
>to "was" and "were".

Thanks! Since I am currently using the second to last build for this
particular game anyway that should be fine.

>I'll update the Custom Library Messages extension to handle the "get off the
>bed" problem, and put in a note about the is/are problem in the past tense

Great- thank you very much!
-J

David Fisher

unread,
Aug 24, 2007, 8:17:10 AM8/24/07
to

OK, the new version (v20) is available from the I7 extensions page:

http://www.inform-fiction.org/I7/Download%20-%20Extensions.html

There is a new version of Default Messages there as well (the only code
change is to handle "get off <supporter>" in the past tense).

David Fisher


J. J. Lawless

unread,
Aug 24, 2007, 6:26:25 PM8/24/07
to

Fantastic! Much obliged.
-J

J. J. Lawless

unread,
Aug 24, 2007, 8:40:14 PM8/24/07
to
Another bit I just noticed:

> l
> I could see Foo and Bar here.

How would I change it to "I could see foo and bar there." instead?

-J

David Fisher

unread,
Aug 24, 2007, 9:23:52 PM8/24/07
to
"J. J. Lawless" <ASC2...@hotmail.com> wrote in message
news:bcuuc39ap4flcqbbn...@4ax.com...

I see you're giving the past tense a good workout!

I've added this to the extension (since there are a few other messages that
say "here" which would sound better as "there" in past tense as well), and
it should be available from the I7 extensions page some time soon (as Custom
Library Messages version 21).

David Fisher


J. J. Lawless

unread,
Aug 24, 2007, 10:50:35 PM8/24/07
to
On Sat, 25 Aug 2007 11:23:52 +1000, "David Fisher"
<david...@australiaonline.net.au> wrote:

>I see you're giving the past tense a good workout!

Well, the squeaky wheel, you know. Overall the extension has been
fantastic. Also, so far it has handled pronouns with no problems at
all, even when the game switches back and forth between first and
second person.

>I've added this to the extension (since there are a few other messages that
>say "here" which would sound better as "there" in past tense as well), and
>it should be available from the I7 extensions page some time soon (as Custom
>Library Messages version 21).

Awesome. That will definately be appreciated!

For now, there are few enough supporters in the game that I will
probably try to 'mention' anything that is on top of one.

-J

0 new messages