Can anyone please tell me what is wrong with this statement–
A bank of postboxes is a backdrop. It is in Lookout South Area. The description of the bank of postboxes is "It is just a number of mailboxes for the occupants and employees in the building to the south."
It seems to return the following problem message:
Problem. The bank of postboxes is scenery, which means that it cannot sensibly have any ‘initial appearance’ property - being scenery, it isn’t announced when the player first sees it. That means the quoted text about it has to be read as its ‘description’ instead, seen when the player examines it. But the source text writes out its description, too, which means we have a subtle little contradiction here.
I have a very similar statement about another backdrop, a banister, earlier in the program, which did not return a problem message. I know that backdrops cannot have ‘initial appearance’ descriptions–in fact, I clearly say, in both statements, 'The description of the …is…", which is NOT an initial appearance statement. Could this problem have something to do with my noun having more than one word in its name?? Nothing else in the game has a name that is anywhere remotely similar, by the way. I have looked all over the manual and it doesn’t say that I cannot have a description of a backdrop(for examining).
That line, by itself, compiles fine. So there must be some kind of collision with another object in your game, probably one with an overlapping name.
Zarf, you may be right–I already have a ‘set of mailboxes’. Originally my noun was a BANK of mailboxes, then I changed it to a bank of postboxes, and I still get the problem message. I’ll try other names, and use the ‘understand’ function.
I changed the name to ‘a postal stop’, and the statement still doesn’t ‘pass’. I don’t get it.
Ahhh, another of these problems.
When Inform sees a string in your source text, without a sentence around it, it assumes it’s setting a property on the most recently mentioned object. (Description if the object is scenery, Initial Appearance otherwise.)
But the way it determines the “most recently mentioned object” isn’t always obvious to a human reader. What’s the code immediately after this definition? Especially the next object definition?
You know, Daniel, I can’t remember–I have tried moving the statement around. I think it was either an instead rule that prevents the player from opening the mailboxes, or it was a ‘room’ description. If it was the latter, I can see where it might confuse the program–the room names there are actually addresses–201 Lookout, 301 Lookout, etc. It might have been followed by the line "201 Lookout is west of Lookout Avenue(a ‘room’ I created some months ago, not initially intending to create rooms along the street)–then following this with the ‘room’ description of 201 Lookout(the usual quote following a period). I am wondering if the program recognizes room names that begin with numbers…? I am still stuck on that problem message above, maybe the next problem messages would be about the numerical room names(there are 16 of them)?? Could it be that the next statement beginning with a number is throwing the computer off track??
Inform is generally able to handle numbers in object names, but it’s totally possible that it’s affecting how the source text is parsed.
Could you look for the next “bare string” (text outside a sentence) in your source text after the definition, and post it with some context?
This is the group of phrases that that statement was with–
To say lookoutsouth:
say "You are on the south side of Lookout Avenue, which runs east-west from here--on this side of the street are a number of businesses and apartment complexes. A bank of mailboxes stands to the side of the walkway."
To say lookoutnorth:
say "You are on the north side of Lookout Avenue, which runs east-west from here--this side is considerably higher than the other, with large, Victorian-style homes, virtually surrounded by trees and shrubbery, and built on top of hills--mounds of dirt bounded by a retaining wall facing the street. Which is why you cannot see the house from here. An elaborate mailbox is here."
201 Lookout is west of Lookout Avenue. "[lookoutsouth] To the south is a funeral home. It is technically 'next door' to your residence. Natalie reminds you of this occasionally....".
301 Lookout is west of 201 Lookout. "[lookoutsouth] To the south is a local tenement building. An alternate residence for about half the people you know--all men, divorced husbands, kicked-out boyfriends. As you might guess, it's a cheap dump.".
401 Lookout is west of 301 Lookout. "[lookoutsouth] To the south is the local walk-in clinic. Being so accident-prone, you often get treated here.".
501 Lookout is west of 401 Lookout. "[lookoutsouth] To the south is the office building of your dentist.".
601 Lookout is west of 501 Lookout. "[lookoutsouth] To the south is an apartment complex for the physically impaired.".
701 Lookout is west of 601 Lookout. "[lookoutsouth] To the south is the offices of your local personal injury lawyer. Only his secretary's car is there--he's probably out 'making the rounds'.".
801 Lookout is west of 701 Lookout. "[lookoutsouth] To the south is the local junkyard. You see only a big wooden fence and electronic steel gate door with a sign reading 'KEEP OUT--VICIOUS GUARD DOGS'. You hear a grumbling dog beyond the door as you walk by. To the west is an abrupt dead end--a circular pavement."
Instead of going south in Lookout South Area, say "Though Natalie often threatens to send you to this place, you are not quite ready for it yet....".
Before going north in Lookout South Area, say "Despite its name, there is no traffic on this street at this time. You cross over to...".
Before going north from Lookout Avenue, say "Despite its name, there is no traffic on this street at this time. You cross over to...".
Understand "bank of mailboxes" as the postal stop. Understand "mailboxes" as the postal stop.
Instead of opening the postal stop, say "Why? You are barely interested in your own mail."
100 Lookout is north of Lookout Avenue. "[lookoutnorth] This side of the street is much more affluent-looking than the other, and you and Natalie often joke that this side 'owns' the other side. In your case, this is true. To the north is your landlady's residence.".
I moved the statement to the point immediately before this exerpt, and it still would not work. The only bare strings are the room descriptions. The context is development of the south side of the street(followed immediately by the north side, another set of map connections and room descriptions, very similar). ‘Postal stop’ is the name I changed the ‘bank of mailboxes’ to.
Thanks for your help, Draconis.
Okay, bigtime correction—after I moved the statement to the spot just before that last exerpt, there was a different problem message, the following–
Problem. You wrote '"[lookoutsouth] To the south is th [...] upt dead end--a circular pavement."' , but in another sentence '"[lookoutnorth] This side of the s [...] orth is your landlady's residence."' : 801 Lookout seems to have two different descriptions, perhaps because you intended the second description to apply to something mentioned in between, but declared it in such a way that it was never the subject of an assertion. For instance, 'The Forest Clearing is northeast of the Woods.' makes the Forest Clearing the current room being discussed, but 'Northeast of the Woods is the Forest Clearing.' leaves the room under discussion unchanged, because the Forest Clearing is not the subject of the sentence.
I guess I was just frustrated when I posted.
Now, I don’t see how 801 Lookout could be confused with 100 Lookout, but I do see that the description for 100 Lookout is the very next room description after 801 Lookout. I wonder if the cause of this problem is the same as that for the other problem(which was solved by moving the statement…??)
Okay, when I removed the statement about 100 Lookout in the excerpt above(including the description of it), the original problem message returned(about which I originally posted).
Could there be a fundamental problem here totally unrelated to what I typed? Maybe I crossed a line somewhere?
By the way, I am at almost 50,000 words.
Okay, before tearing my hair out, I finally decided to change the names of the rooms from addresses(201 Lookout, 301 Lookout and the like) to actual words, and did so for the other side of the street–it was tedious, but it worked. As most of these will be mere stubs(ie lead nowhere and have little to do with the game or plot), I hope players won’t get too frustrated thinking that they will have to go into them(and beat the head against the proverbial wall)–but then this has happened to me in numerous games. Thanks, anyway, Draconis.
At this point I’m stumped. Try the old binary search technique? (Comment out half your code, then uncomment half of that, repeat until you find the problem.)
Hey Draconis–I think it was the numbers that threw it off. I changed all the room names, and the problem disappeared.