Your speculation or psychic powers may be useful here. I have an NPC AgendaItem that was working perfectly, but now it’s refusing to fire. I know it was working, because I can find the output in several tester transcripts from last week. The code for the AgendaItem hasn’t changed (though today I’ve tried tinkering with it, which hasn’t solved the problem). The code for the NPC’s Actor object hasn’t changed. The NPC is definitely present in the room, because he can be examined. Yet the AgendaItem (which provides the player a useful clue) is now dead silent. It doesn’t fire in a transcript I got from a tester this morning, and it doesn’t fire for me either.
For reference, here’s the code (not that that’s likely to tell you anything), with only one tiny spoiler replaced with Xxx:
+ frankXxxxClue: AgendaItem
isReady = (gPlayerChar.getOutermostRoom() == securityOffice)
initiallyActive = true
invokeItem() {
"As you enter the Security Office, the two guards are in the
midst of a discussion. <q>All I\'m saying,</q> one of them says,
<q>is that we ought to be able to keep an eye on the leather
goods shop.</q> He gestures at the big monitor screen. <q>We
can see just about every other shop, the ones we need to see,
anyhow.</q>
<.p><q>Ah, it doesn\'t matter,</q> the other guard says. <q>It\'s
not like anybody is going to come around here with their pants
falling down and need to steal a belt.</q> ";
isDone = true;
}
;
This is embedded directly in the Actor object. I’ve tried moving it to the current ActorState (and adding a +, obviously). That doesn’t help.
I’ve run eval on the properties of the AgendaItem. They’re all what they should be. It’s initiallyActive, it’s isReady, and it’s not isDone. The gPlayerChar is definitely in the correct room. But the item doesn’t fire.
I tried stepping through the library to see what is or isn’t happening using breakpoints, but the process the library goes through at this point is so complex that I just plain don’t understand what’s going on, or where it could be going astray.
One remote possibility (which I would prefer not to contemplate) is that the overall size of the game has gotten too large for the interpreter software, which could lead to impossible-to-trace bugs. This morning a tester sent me a transcript that contained two absolutely impossible phenomena. He says he’s using the most recent version of QTads. In one moment in his transcript, QTads used the spelling corrector when he typed ‘dust’, correcting it to ‘dusty’ and thereby interpreting his command as referring to an object that was definitely not in scope. I couldn’t duplicate that error.
This is a very, very large game, so the possibility that I’m crashing up against the walls of the interpreter, though remote, is not beyond the realm of possibility. Comments would be appreciated!