[Updated: I’ll try to mark things below as checked when they’re entered.]
Thanks, @Dannii !
I know I’m not going to have time to do it justice any time soon, so I am going to dump my semi-coherent notes here in case anyone wants to use them as a basis to start entering things.
Intfiction threads about bugs and infelicities
get all from container doesn’t work correctly when container is carried
Apologies if this has already been reported, but I can’t find any reference to it in the Bug Tracker or on the forum.
[code]“Test1” by “J. J. Guest”
Desert is a room.
A sack is in the desert. The sack is a container. The sack contains a goblet and a skull.[/code]
This is the response of the game when the sack is on the ground:
This, on the other hand is what happens when we take the sack first:
Is this a bug? I’m using 6M62 (Windows).
The testing room is a room.
The player is wearing a suit.
The pockets are part of the suit. The pockets are a container.
A pen is a kind of thing. The player is carrying five pens.
Before inserting something into the suit:
now the second noun is the pockets;
try the current action instead.
Before removing something from the suit:
now the second noun is the pockets;
try the current action instead.
OK, let’s try it.
testing room
>put all in suit
pen: Done. [Five times]
>take all from s…
weird arithmetic results; compiler should probably have rejected code
A weird one:
"Odd Numbers"
Place is a room.
To decide which text is (N - number) recalculated:
[ showme N;
showme (N divided by 256) to the nearest whole number;
showme the remainder after dividing N by 256;] [same behavior from showme]
say "word = [N] ";
let HB be (N divided by 256) to the nearest whole number;
say "high = [HB] ";
let LB be the remainder after dividing N by 256;
say "low = [LB] // ";
[decide on "[HB] [LB]".] [uncomment this and everything works f…
opened 03:21PM - 03 Jun 21 UTC
closed 05:56AM - 27 May 22 UTC
subsystem-phrases
compiler-accepts-invalid-code
compiles-but-misbehaves
As discussed here: https://intfiction.org/t/unexpected-arithmetic-results-why/50… 495
When writing a "to decide" phrase for some block value type (e.g. text) but never using the "decide on ..." phrase, the compiler gets itself confused on the function arguments and generates nonsense code.
Hello! I’m working on a heavily simulationist story set in the Belgian resistance to Nazi occupation in WW2. It includes a lot of procedurally generated NPCs who can speak different languages and belong to one faction or another. Some kinds of clothing are identified with factions; for example, a gendarme’s tunic represents the Belgian police. Also, non-civilians can order one another around; because this is an occupied country, this means that German NCOs can order the police to do things.
Cur…
relation_showOtoO
bug fixed by Friends of I7 6M62 patches
Version 2/220105 of 6M62 Patches by Friends of I7 begins here.
Use authorial modesty.
Volume intfiction.org/t/46906
[The original version of this function assumes that both sides of the relation are the same kind of value (or that
both are objects of some kind that need not be the same kind). The latter is reasonably common, but not guaranteed.
This implementation actually checks.]
Include (-
[ Relation_ShowOtoO relation sym x relation_property t1 t2 N1 obj1 obj2;
relation_property = RlnGetF(relation, RR_STORAGE);
t1 = KindBaseTerm(RlnGetF(relation, RR_KIND), 0); ! Kind of left term
t2 = KindBaseTerm(RlnGetF(relation, RR_KIND), 1); ! Kind of right term
if (t1 == OBJECT_TY) {
objectloop (obj1 provides relation_property) {
obj2 = obj1.relation_property;
if (sym && obj2 < obj1) continue;
if (obj2 == 0) continue;
if (x == 0) { print (string) RlnGetF(relation, RR_DESCRIPTION), ":^"; x=1; }
This file has been truncated. show original
stopping a timed event
It’s also quite possible that there are three other matt w’s on the Uservoice forum… but those are all actually different people.
Right, I’m having Problems Testing multiple conditions to bring about end of the game in Inform7.
I’ve reduced the game to Two rooms, for demonstration purposes.
1/ PHONE BOOTH
2/ STREET
The Aim of the game is simple. A taxi is going to pick you up from the STREET location after you call it.
A/ Call taxi from PHONE BOOTH.
B/ Go to STREET.
C/ Wait FIVE turns (or minutes)
D/ Get picked up by Taxi
E/ Game ends
If your not in the street at the right time you miss the taxi and have to call …
enterable supporters part of things
opened 08:28AM - 04 Jun 21 UTC
closed 03:25PM - 13 Jul 23 UTC
compiles-but-misbehaves
subsystem-objects
subsystem-actions
Discussed here: https://intfiction.org/t/more-weirdness-with-enterable-supporter… s-that-are-part-of-things/45991
In the discussion of the object hierarchy, Gavin brought up this case :
Test results:
[1] sit on couch
You get onto the couch.
[2] stand on couch
But you’re already on the couch.
[3] sit on tailgate
(getting off the couch)
You get onto the tailgate.
[4] stand on tailgate
(getting off the tailgate)
(getting out of the room)
But you aren’t in anything at the moment.
[5] g
You get onto the tailgate.
I’m baffled by what’s going on here. The key parts of the standard rules …
The difficulty seems to be in the handling of named responses which are defined inside loops.
In my copy of the Standard Rules, the rule in question is a Check an actor entering rule on line 2519, and response (A) uses a variable current home which is set with each in the first line inside a while loop. Now consider the following simple story:
"testing" by Eric Conrad
Fooing is an action applying to one thing. Understand "foo [container]" as fooing.
Check fooing:
if the noun is not a cont…
My point is that I think I7 is trending towards multiple independent relations anyway, ie. multiple trees. Which implies that I6 is in the wrong by trying to smoosh together containers and supporters in the same tree.
Though yes, the contain/support/part relationships are a bit peculiar in that they’re not quite independent, they all represent a kind of location and thus if you change one you have to “reset” the others.
Actually, after playing with this a bit, perhaps this demonstrates some o…
changing the description of a kind
Fair enough.
While testing this I came upon this odd apparent bug, which I can’t work out even after looking through the I6 code, which looks fine to me.
The following:
The Control Room is a room.
A button is a kind of device with printed name "button" and description "A green button."
The large button, the small button and the medium button are buttons in the Lab. The printed name of the large button is "large button".The printed name of the medium button is "medium button".The printed name…
concealment bug, example 225
I’m modifying some examples from the Inform 7 recipe book. I have the following:
The Lab is a room.
Kitty Pryde is a woman in the Lab.
The Undertomb is a room.
It is down from the Lab.
A thing can be secret or obvious.
A thing is usually obvious.
Cain Marko is a man in the Lab.
Cain Marko carries a quantity of plastic explosive.
The quantity of plastic explosive is secret.
Kitty Pryde carries a laptop bag and a microfilm.
The microfilm is secret.
Rule for deciding the concealed possession…
misfeature fix, includes various matches for snippets vs texts
While we’re on the topic of what could kindly be termed ‘idiosyncracies’ in Inform, others have previously expressed frustration at the bizarre way that ‘includes’ for snippets is equivalent to ‘matches’ for texts, while ‘matches’ for snippets is equivalent to ‘exactly matches’ for texts- in phrases such as 'if the player’s command matches “take aardvaark”, replace the matched text with “take anteater”.
This can be fixed by adding the following to source text, which also adds phrases to allow t…
named outcomes for rules producing results, probably should be forbidden
Thanks for looking at it, @zarf !
Memory access out of range when getting a list of values from a rulebook
opened 11:08AM - 03 Jun 21 UTC
closed 04:38AM - 01 Jun 22 UTC
patch-available
subsystem-rules
subsystem-block-values
compiles-but-crashes
Reported at
- https://intfiction.org/t/crash-memory-access-out-of-range-when-… getting-a-list-of-values-from-a-rulebook/50338
- https://intfiction.org/t/i7-6m62-rulebook-producing-a-list-of-numbers/13696
Patch available: https://github.com/i7/extensions/blob/master/Friends%20of%20I7/6M62%20Patches.i7x
It would probably help if you could post a minimal example of the code that reproduces the error.
If you can’t do that, can you identify the point of crashing in a particular rule in your objective generation rulebook? Can you pinpoint it to a particular line of that rule? That also would probably help.
article handling for French
Sorry for the late reply…
I haven’t tested yet, but it would seem you are right, it comes form the lines you mentioned. In the same routine in the Inform 6 library, we can see that the space is not printed .
And best of all (if I understand correctly, but feel free to correct me), it only applies when the articles I6 property is set, so I could just suppress the space in that case and it won’t change he normal behavior otherwise.
So the behavior has changed in Inform 7, but I wonder…
9.13 suggests increasing score “when noun is not handled” for picking something up first but this doesn’t work
From a quick check, it looks like the issue is probably a change in when the “handled” property gets set. (Unfortunately, my copy of 6G60 is hanging up when I try to open the Standard Rules, so I can’t make sure.)
In 6M62, a thing will be set to “handled” as part of the standard taking rule, during the Carry out taking phase. That means that when you check whether it’s handled in the After phase, it’s already been set to handled, even if this was the first time you took it.
It looks like you c…
plus
Wayback Machine copies of Mantis bugs
048
https://web.archive.org/web/20180516031507/http://inform7.com:80/mantis/view.php?id=2048
0002048: The sayable [its] does not work on Linux
Description On Windows, I can use “[its]” in text to be said, producing the appropriate possessive pronoun for the last thing mentioned. On Linux, any game that does this gets a Problem message, which looks to be the same one that you get if you put any undefined nonsense in brackets in text to be said.
Minimal Source Text To Reproduce
“Test Project” by “Adam Novak”
The Garden Path is a room.
The rock is a thing in The Garden Path. “[The rock] sits here minding [its] own business.”
2050
https://web.archive.org/web/20180516031839/http://inform7.com:80/mantis/view.php?id=2050
0002050: You can compare descriptions for equality, but there is no correct way to do that.
Description The attached code prints false instead of true. However, there is no general way to get this comparison right, so it should probably be disallowed entirely (or alternatively, WI might grow a paragraph about “object identity vs. object equivalence” in the Advanced Phrases section).
https://web.archive.org/web/20180516031849/http://inform7.com/mantis/view.php?id=2053
2053
0002053: Misleading comment on specifying a unit taking real number values
Description Section 15.8. Units says:
1.0 kg specifies a weight.
Here Inform can see from the decimal point in the prototype number that real numbers will be involved.
That’s incorrect, and definitely misleading, since e.g. “1.1 kg specifies a weight” doesn’t work. The digit after the point has to be 0, or else we end up specifying a “notation including more than one number” as discussed in Section 15.14.
https://web.archive.org/web/20180516031854/http://inform7.com:80/mantis/view.php?id=2054
0002054: Properties of generic objects not assigned correctly
Description Let K be a kind with property P. A declaration such as “There is a K with P (property);” does not correctly assign the property (which is instead set to the default value
).
2055
https://web.archive.org/web/20180516031726/http://inform7.com:80/mantis/view.php?id=2055
WI 18.29 uses 6G60 era phrase “while in”
2056
https://web.archive.org/web/20180516031616/http://inform7.com/mantis/view.php?id=2056
Alien Invasion 23 example Runtime error on MacOS but not Windows
2075 http://inform7.com/mantis/view.php?id=2075
A Couple Questions RE: Math and Number Display - #14 by zarf
2141
http://inform7.com/mantis/view.php?id=2141
Yeah, it looks to me as though the difference is in the routine for calculating what a non-player thing can see and what a player can see. From Appendix B (this is a few Inform versions ago but I think still current):
§7. Visibility Parent. The idea of VisibilityParent is that it takes us from a given position in the object
tree, o, to the next visible position above. Note that
(1) A container has an inside and an outside: this routine calculates from the “inside of o”, which is why it retur…
container / light / visibility problem