MantisBT - I6 Library
View Issue Details
0001391I6 LibraryGeneralpublic2014-08-17 12:392015-05-10 17:46
DavidG 
DavidG 
normalserioushave not tried
closedfixed 
6/12 
6/126/12 
0001391: PAUL, TAKE ALL provokes a cascade of "Paul has better things to do."
Report from Nathan Schwartzman:

I've discovered a regression. In the attached game, PAUL, TAKE GOLD will be rejected since "Paul has better things to do" but PAUL, TAKE ALL will go ahead and have Paul take everything. Same for DROP ALL.
No tags attached.
Issue History
2014-08-17 12:39DavidGNew Issue
2014-08-17 12:39DavidGStatusnew => assigned
2014-08-17 12:39DavidGAssigned To => DavidG
2014-08-17 12:40DavidGNote Added: 0003084
2014-08-17 12:40DavidGNote Edited: 0003084bug_revision_view_page.php?bugnote_id=0003084#r1126
2014-08-18 23:03DavidGNote Added: 0003085
2014-08-18 23:12DavidGNote Added: 0003086
2014-08-18 23:16DavidGNote Edited: 0003086bug_revision_view_page.php?bugnote_id=0003086#r1128
2014-08-19 00:37DavidGNote Added: 0003087
2014-08-19 23:22DavidGSummaryPAUL, TAKE ALL works but not PAUL, TAKE GOLD => PAUL, TAKE ALL provokes a cascade of "Paul has better things to do."
2014-08-28 21:43DavidGNote Added: 0003123
2014-08-28 21:43DavidGStatusassigned => resolved
2014-08-28 21:43DavidGFixed in Version => 6/12
2014-08-28 21:43DavidGResolutionopen => fixed
2015-05-10 17:46jmcgrewNote Added: 0003459
2015-05-10 17:46jmcgrewStatusresolved => closed

Notes
(0003084)
DavidG   
2014-08-17 12:40   
From Nathan Schwartzman:

I think I've tracked the regression down to something that changed between September 29, 2012 and October 12, 2012. Unfortunately I get a ton of errors when I try to compile the versions from in between those dates.

(0003085)
DavidG   
2014-08-18 23:03   
Clarification. When the player orders Paul to do something that isn't expected, the standard response is "Paul has better things to do.". If Paul is ordered to take many things, there should be only one response of "Paul has better things to do.". Instead this message is printed for each object Paul is ordered to take.
(0003086)
DavidG   
2014-08-18 23:12   
(edited on: 2014-08-18 23:16)
This bug appeared sometime between https://github.com/DavidGriffith/inform6lib/commit/f5599dc76f6008877a0a3591f9963ea3decab21c [^] https://github.com/DavidGriffith/inform6lib/commit/9abf2dd82318ad5406ee2f171462e8c7ed596e5b. [^] The first commit is just before the R_Process invocation <action [noun] [second]> was expanded to allow for an "actor" parameter. The new grammar became <actor, action [noun] [second]>. About a month later this grammar was deemed too disruptive and changed to <action [noun] [second], actor>. In this way the old code would compile and the actor parameter would default to the player and things would work as they always had. This brief change, however, required changes in the compiler itself. Therefore the current compiler cannot compile code that uses the Library between these two commits. These changes were done sometime in 2005 or 2006 and copied over from the old CVS repo.

Weeding out the cause of this regression is going to be... interesting.

(0003087)
DavidG   
2014-08-19 00:37   
Under no circumstances does it appear that InformLibrary.actor_act() returns anything other than 0 (or false). Of what use is checking if that property returns something positive? According to what I see in the old CVS, Roger Firth wrote that property in 2004. I posted a question in http://www.intfiction.org/forum/viewtopic.php?f=7&t=16001 [^] asking about what might have been intended. In the meantime, here's what seems like an acceptable fix:

https://github.com/DavidGriffith/inform6lib/commit/baf83530bea890d49744c12de1490520ed1c94eb [^]

I'll leave this ticket open until I'm sure this fix is good.
(0003123)
DavidG   
2014-08-28 21:43   
I'm sure that this bug is squashed for good.
(0003459)
jmcgrew   
2015-05-10 17:46   
Closing all resolved issues from 2014 and earlier.