|Anonymous | Login | Signup for a new account||2017-04-28 16:42 PDT|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001969||Core Inform||Understanding||public||2016-11-17 21:05||2017-04-11 07:48|
|Platform||Macintosh||OS||El Capitan||OS Version||10.11.6|
|Target Version||Fixed in Version|
|Summary||0001969: taking multiple objects from a held container yields "none at all available" message|
|Description||When the player holds a container that contains more than one object and tries to "TAKE ALL FROM [container]", it will result in a "There are none at all available!" parser error message, even though taking the contents of the container is a sensible move and can be done by directly specifying the contents.|
If the container only contains one thing, then "TAKE ALL FROM [container]" will succeed in taking that one thing.
|Minimal Source Text To Reproduce|
Lab is a room. A bucket is in Lab. A rock and a shovel are in the bucket. test me with "take all from bucket/put all in bucket/take bucket/take all from bucket/take rock and shovel/put rock in bucket/take all from bucket".
You can see a bucket (in which are a rock and a shovel) here.
> take all from bucket
> put all in bucket
> take bucket
> take all from bucket
There are none at all available!
> take rock and shovel
> put rock in bucket
You put the rock into the bucket.
> take all from bucket
The culprit is this rule:
Rule for deciding whether all includes things enclosed by the person reaching
while taking or taking off or removing (this is the exclude indirect
possessions from take all rule): it does not.
Deleting "or removing" fixes this case. I believe this should be safe, as the player will only be removing indirect possessions when they have typed something along the order of "take all from bucket," and that should be allowed. Maybe there would be a problem if the player types "take all from booth" when the booth is an enterable container that the player is in, but on a quick test it seems not to be causing a problem.
|Tags||No tags attached.|
|Effect||(serious/mild) Game compiles but misbehaves|
|Also, I'm not sure why "taking off" is even in the exclude indirect possessions from take all rule, because the grammar lines for the taking off action don't accept multiple objects. This might be left over from before those grammar lines were rewritten to eliminate spurious implicit takes for the taking off action, but even if we put a grammar line back in to allow taking off to accept multiple objects, it certainly shouldn't exclude things enclosed by the person reaching, as the whole point of the action is to remove worn things! I guess this is a different bug, potentially.|
|Background: the "whether all includes" rules were heavily updated in 6L02. I think the cause was http://inform7.com/mantis/view.php?id=433 [^] .|
edited on: 2016-11-18 09:47
On the subject of the taking off action, it seems as though "all" automatically excludes worn things irrespective of the "whether all includes" rules (as it properly does for the player's body). So no matter what we do to the "whether all includes" rules, taking off is going to break if we try to make it apply to multiple objects. Forum post: http://www.intfiction.org/forum/viewtopic.php?f=7&t=20807 [^]
As I say there, I think it's probably best to eliminate "taking off" from the rule header, just because taking off multiple things is going to break no matter what the author does, so there's no point in backstopping it in this rule.
(Continuing this in this thread rather than posting it as a new issue, because it's not obviously a bug.)
|I see now that the cause of this particular revision to the "whether all includes" rules was http://inform7.com/mantis/view.php?id=1474. [^]|
Just on another test, the proposed fix doesn't seem to break down in the case of nested possessions. This works as desired:
Rule for deciding whether all includes things enclosed by the person reaching while taking (this is the exclude indirect possessions from take all only rule): it does not.
The exclude indirect possessions from take all only rule substitutes for the exclude indirect possessions from take all rule.
Dacha is a room.
The player carries a large matryoshka. A medium matryoshka is in the large matryoshka. A small matryoshka is in the medium matryoshka. A speck of dust is in the large matryoshka.
test me with "i/take all from large/ i/take all from medium/put all in large/take all from large".
|2016-11-17 21:05||mattweiner||New Issue|
|2016-11-17 21:11||mattweiner||Note Added: 0004592|
|2016-11-18 07:47||zarf||Note Added: 0004593|
|2016-11-18 09:28||mattweiner||Note Added: 0004595|
|2016-11-18 09:47||mattweiner||Note Edited: 0004595||View Revisions|
|2017-02-01 18:51||mattweiner||Note Added: 0004646|
|2017-04-11 07:48||mattweiner||Note Added: 0004676|
|Copyright © 2000 - 2010 MantisBT Group|