Upgrading to latest version of inform 7

Well, I made the mistake of upgrading to the new version and I now have some compatibility errors that I need to fix. :confused: Can anyone help me sort them out?

This works for me in 6M62:

[code]“Test”

Test Room is a room.

A thing has a text called the out of ammo text. The out of ammo text of a thing is usually “Out of Ammo”.

A plain cube is in Test Room.

After jumping, say “The cube is [out of ammo text of the cube].”[/code]

Have you perhaps defined “thing” somewhere that might be throwing off the compiler? Post the relevant source if possible.

Hmm. Well I haven’t defined a ‘thing’ as anything as far as I know, but then again Inform is finicky. All I’ve been doing is stuff like ‘(something) is a thing that varies.’ I’m afraid I can’t really post the source as it’s way too big, but if you can tell me how I might have phrased something that defines the word ‘thing’ then I would probably recognize it.

This did only happen after the update, so I’m wondering if this isn’t to do with some kind of language change.

Ok, this is getting odd. This is the script in question and it’s still doing the exact same thing, but only for the ‘out of ammo’ line. Nothing else. :confused:

A ranged weapon has a text called the shots text. The shots text of a ranged weapon is usually "shots". A ranged weapon has a text called the reload text. The reload text of a ranged weapon is usually "reload". A ranged weapon has a text called the reload stem text. The reload stem text of a ranged weapon is usually "reload". A ranged weapon has a text called the out of ammo text. The out of ammo text of a ranged weapon is usually "You pull the trigger, but nothing happens -- you're out of ammo! ▶[o]RELOAD[x]◀".

Have you tried removing the unicode stuff?

How about [o] and [x] ?

That’s probably going to be it. You’re using hyperlink combat it appears?

It looks like [o] and [x] come from Hyperlink Interface by Leonardo Boselli–you should make sure you have the latest version of it [snipped] rather than the version you can get from the old Inform extensions website. Those are often broken. (Although… I can’t find anything different between the new version and the old version in that part of the code.) It’s worth checking, in any case.

It seems like in any case there’s a bug in the error reporting, because whatever’s going wrong the error message isn’t being helpful. But I don’t know if it’ll be possible to get a simple enough case to reproduce the problem.

UPDATE: Well, I tried installing that version of Hyperlink Interface and it told me that Table of User Styles (continued)’ didn’t match the old Table of User Styles. I feel like this is a problem that people have encountered and solved before but thinking about it makes me kind of headachey.

DOUBLE UPDATE: It looks like the actual current version of Hyperlink Interface is not on github but on SourceForge, here. I don’t really want to download a zip from SourceForge to test this, but if you don’t have the latest Hyperlink Interface you might want to grab it from there and see if it fixes the problem.

I should note that failing to define the [o] and [x] substitutions would not cause the error listed above. You can write the test case

The Kitchen is a room.

A ranged weapon is a kind of thing.

A ranged weapon has a text called the shots text. The shots text of a ranged weapon is usually "shots".
A ranged weapon has a text called the reload text. The reload text of a ranged weapon is usually "reload".
A ranged weapon has a text called the reload stem text. The reload stem text of a ranged weapon is usually "reload".
A ranged weapon has a text called the out of ammo text. The out of ammo text of a ranged weapon is usually "You pull the trigger, but nothing happens -- you're out of ammo! ▶[o]RELOAD[x]◀".

The error you get is “…I was expecting that ‘o’ would be something to ‘say’, but it didn’t look like any form of ‘say’ that I know.”

So something else is going on, I think.

You are right that the [o] and [x] are defined by the hyperlink mod, and I think I should make clearer that it all compiled fine before I formatted the computer and upgraded Inform. Could this be caused by old versions of the automatically included files?

There’s lots of unicode up and down the text file so I’m sure it can’t be that…

I guess it’s not impossible–a while ago I accidentally modified a built-in extension, and then when I tried to use it in a later version my older modified version overrode the newer built-in one. So you might want to check if there’s a stray copy of one of the built-ins you’re relying on in ~/Library/Inform/Extensions.

It seems as though (on the Mac) if you look in the Extensions tab of the IDE, the built-ins should have little gray folders next to them, and extensions you’ve installed yourself will have little blue folders (which you can click on to take you to the folder containing the extension in the Finder). When I had an old version of the built-in it had a picture of the Inform 6G60 icon with a red bar crossing it out. So if you see one of those, you know something’s gone wrong.

Have you tried renaming “out of ammo text” to something without the word “of” in it, like “out-of-ammo text”?

I’m thinking that maybe “The out of ammo text of a ranged weapon” is being parsed as “The (out) of ((ammo text) of (a ranged weapon))” instead of “The (out of ammo text) of (a ranged weapon)”, or that there’s a similar problem elsewhere.

Hi! I’m Leonardo Boselli. I think that the SourceForge version of “Hyperlink Interface by me” (that is a modified version of “Keyword Interface by Aaron Reed”) should work with 6M62, at least with little modifications or as it is. Unluckily I haven’t tested it extensively because another problem with the Italian Language Extension, discussed elsewhere, still force me to use the older Inform 7 version (since I write IF only in italian).
I hope that the Language Extension problem will be fixed someday (but this hope is OT in this thread).

Leonardo, thank you for chiming in. I pointed this to Emily, who is aware of the importance of this issue. Her reply was:

Thanks a lot, it stopped complaining when I did that! :slight_smile: Unfortunately this build of Inform’s bug checker is apparently VERY badly broken. I’m now getting nothing but this error for several bits of script that previously compiled and worked fine:

But when I remove those lines completely it just says:

Ok, I just reinstalled the previous version of Inform and it’s now all working perfectly! :smiley: I think the new version must be messed up or something.

When authors are avoiding a release that’s been out for almost five months like the plague, there is something very broken here.

newbie: so I should download the latest the version of Inform?
oldschool: not if you want to have all sorts of incompatible issues with your game
newbie: what’s wrong with it
oldschool: most extensions don’t work with it
newbie: must be a newly released version?
oldschool: it’s been out almost five months
newbie: why don’t they fix them?
oldschool: things move a little slowly around here
newbie: okay, so gluxe format is the new standard for larger, modern games?
olschool: yes absolutely. it is the future
newbie: i want to use cool graphics interpreters like Vorple and Parchment to make my presentation look good
oldschool: sorry not compatible
newbie: so you’ve written all these cool graphical tools based only on the older, outdated format? That makes no sense.
oldschool: don’t question our brilliance
newbie: when will this mess be cleaned up?
oldschool: no idea. could take years. we’re a small community
newbie: So that’s why all these new authoring tools are surging past you?
oldschool: welcome to Inform noob…

Sorry.

from a practical viewpoint: It is not that hard to re-write the Glulx .html/.css to whatever presentation you want.

For instance, to change the players input: in the file glkote.css, just hack the content of
.BufferWindow .Input {

To change the players last input, change the content of this line: (still in glkote.css)
.Style_input {

To change the general text:
.BufferWindow {

For the record: I don’t mean to dismiss your post, newbie109 … it is honestly meant a practical approach.

That said, I have a lot more issues with the latest Windows version than with the latest Inform version …

In the new I7, you can put this stuff into an interpreter template and it’ll insert it automatically when you release.