Changing tenses of builtin messages during a game.

Hi,
I’m new to Inform7 so I apologize in advance if this is a dumb question. In the game I am writing, I would like the first section to be in the past tense, and then change to the present tense after a certain point. This would require changing many default library messages (or overriding them?) since they are written in the present tense; and then changing the messages again when we move to the present. I saw Ron Newcomb’s extension to override the library messages, but is it possible to change them based on what scene or room we are in?

One way would be to create say-phrases that tacks on a suffix or prints the appropriate pronoun, like so:[code]
To say e-s:
if the flashback scene is happening, say “ed”;
otherwise say “e”.

To say You:
if the flashback scene is happening, say “I”;
otherwise say “You”.

To say you:
if the flashback scene is happening, say “I”;
otherwise say “you”.
[/code] So it could be used like, "[You] wav[e-s] the torch in a wide arc."

David Fisher’s Custom Library Messages can do this stuff out-of-the-box, though it’ll eat Z-machine memory if you’re aiming at that. I have plans to re-create CLM in a lightweight way, but I have a lot of other things on my plate right now.

Thanks Ron, I didn’t expect such a quick response!

I haven’t written them out yet, but I expect most of the messages to be too different between the scenes for simple [e-s] substitution to cover it. I’ll take a look at CLM: it’s not a big deal to me right now whether the game will fit in zcode.

OK, I think I found a hack of Ron’s library that will let me do want I want with the least amount of pain. The basic idea is instead of using a constant table for our lookups, we make the library use a variable table. So after the definition of the table of custom library messages in Ron’s extension file we add this line:

The current table of custom library messages is a table name that varies.  The current table of custom library messages is the table of custom library messages.

And then in the three interventions below we change table of custom library messages to current table of custom library messages . Now if you want to change the custom library message table due to some major event, you first define the new table:

Table of flashback library messages
library-action	library-message-id	library-message-text
action-name	number	text
waiting action	1	"You waited for such a long time..."

And then at the point you want to make the change, write

Now the current table of custom library messages is the table of flashback library messages.

And of course you can keep changing the table as much as you wish.

I’m working with CLM in my stuff too, and I’m going to pocket this trick as it seems like it could come in handy — thanks!

Paul.