Classes:SwitchableDecoration

From ZDoom Wiki
Jump to navigation Jump to search
Note: Wait! Stop! You do not need to copy this actor's code into your project! Here's why:
  1. This actor is already defined in GZDoom, there's no reason to define it again.
  2. In fact, trying to define an actor with the same name will cause an error (because it already exists).
  3. If you want to make your own version of this actor, use inheritance.
  4. Definitions for existing actors are put on the wiki for reference purpose only.
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