Classes:SwitchableDecoration

From ZDoom Wiki
Jump to navigation Jump to search
Note: Wait! Stop! Before you copy this actor's definition into your mod, remember the following things:
  1. You do NOT need to copy that actor, since it is already defined.
  2. In fact, it's not just useless, it will cause problems.
  3. If you want to modify it, or use a modified version, using inheritance is the way to go.
  4. The actor definitions here are put on the wiki for reference purpose only. Learn from them, don't copy them.
Switchable decoration
Actor type Internal Game MiniZDoomLogoIcon.png (ZDoom)
DoomEd Number None Class Name SwitchableDecoration


Classes: SwitchableDecoration
 →BatSpawner
 →FlameLarge
  →FlameLarge2
 →FlameSmall
  →FlameSmall2
 →SwitchingDecoration
  →ZGemPedestal
  →ZWingedStatueNoSkull
 →ZCauldron
  →ZCauldronUnlit
 →ZFireBull
  →ZFireBullUnlit
 →ZTwinedTorch
  →ZTwinedTorchUnlit
 →ZWallTorch
  →ZWallTorchUnlit

A class derived from this one can be activated and deactivated, making it alternate between the Active and Inactive state sequences.

Use in ZScript or DECORATE

An actor derived from SwitchableDecoration must have at least valid Spawn and Active states. A valid Inactive state is needed if the actor is to be switchable off as well.

Note: Using this class in ZScript is largely unnecessary, because all actors have access to the Used() virtual function that can be set up to perform any custom logic. Alternatively, if there's a need to execute the actor's special on interaction, the Activate and Deactivate functions can be utilized as well.

ZScript definition

Note: The ZScript definition below is for reference and may be different in the current version of GZDoom.The most up-to-date version of this code can be found on GZDoom GitHub.
class SwitchableDecoration : Actor
{
	override void Activate (Actor activator)
	{
		SetStateLabel("Active");
	}

	override void Deactivate (Actor activator)
	{
		SetStateLabel("Inactive");
	}	
}

DECORATE definition

Note: This is legacy code, kept for archival purposes only. DECORATE is deprecated in GZDoom and is completely superseded by ZScript. GZDoom internally uses the ZScript definition above.
ACTOR SwitchableDecoration native {}

See also