It's a deceptively complex complex, because it touches upon both actor special execution, and the Activate()/Deactivate() virtuals, which are largely unrelated, except when there's an overlap with USESPECIAL/BUMPSPECIAL.
In any case, I've figured most of it out. Except one thing: for some reason, adding, for example, USESPECIAL and an Activate() override to an actor works as-is on monsters:
Code: Select all
class DoomImp_ : DoomImp
{
Default
{
+USESPECIAL
}
override void Activate(Actor activator)
{
Console.Printf("Calling Activate()");
}
override void Deactivate(Actor activator)
{
Console.Printf("Calling Deactivate()");
}
}
For the life of me, I can't figure out why; I've looked through the related ZScript and C++ functions and I don't see where this is set up or what even the conditions are (the ISMONSTER flag? something else?)
I need help figuring it out to complete the documentation and get rid of that Need more info bit I have there for now.