If you’re using adv3Lite, I’d appreciate it if you’d try the command ‘clean X with Y’ where X and Y are any two objects in scope. Whether you’ve defined dobjFor(CleanWith) and iobjFor(CleanWith) on them doesn’t seem to make any difference. This command produces a runtime error on line 446 of action.t.
I’ve emailed Eric Eve about this. I’m confident he’ll be able to sort it out, but I don’t know what his life is like at present, so I don’t know how soon he may be able to look into it. If you get different results, please let us know!
The weird thing is, I can see no differences at all between CleanWith and DigWith, which is right next to it in the library files. Yet DigWith works, and CleanWith doesn’t. Possibly your eagle eye will be able to detect a difference.
The problem seems to have something to do with trying to find a remap for the command. The line in action.t is:
remapResult = obj.(remapProp);
Apparently, obj. is nil, or possibly remapProp is nil. Something like that. I don’t have a clue.
I noticed that too. As far as I can see, though, that just refers to the number of tests being made in the verify() routine for dobjFor(CleanWith).
As a test case, I constructed a new action called FrotzWith. I copied everything I could find from the library’s CleanWith code into my FrotzWith … and FrotzWith works just fine. It doesn’t do anything except print a message when it reaches the action() code, but I doubt that makes a difference. I could maybe check that a little further.
Those locals all remain nil, unlike for example when the game resolves the direct object. I don’t know why that would be. If you set a breakpoint there and then try the command “dig duck with hamster” (by the way, the absurdity of that redeems the inscrutability of this bug) only the remapResult remains nil.
Your mention of DigWith was why I found it – comparing search results of DigWith and CleanWith. The adv3lite docs really could use a good search feature, or I need to set something up locally with another tool. I had to use Github’s.
The Learning book is easy to search, and there would be no point in searching the Library Reference Manual. The Library Manual and the System Manual could use a search utility, that’s true, but they have tables of contents.