I have a situation in my game where I want to suppress all output from a nested command, similar to I7’s “silently try…” I tried doing something like this:
/* Create a function wrapping the method to call. */
local func = new function(actor, dest)
nestedActorAction(actor, SitOn, dest);
/* Capture the output of the travel action. Don't do anything with it. */ mainOutputStream.captureOutput(func, self, loc); }
But it turns out this doesn’t work, because the output of the SitOnAction apparently doesn’t go through the filter that captures the output. As far as I can make out from my limited understanding of the transcript system, MainCommandReports and DefaultCommandReports are added directly to the transcript and only filtered later, by which time the filter that captures the output has been removed.
I came up with an alternative way of achieving what I wanted to do, so I don’t need help with that. I’d just like to understand what’s going on here. Is it a bug in captureOutput, or intentional-but-counterintuitive behaviour, or am I totally misunderstanding something about the code (very likely)?