
class ZParticle : Actor
{
	GlobalLevelHandler Event;

	override void PostBeginPlay()
	{
		int plimit = d3d_perfparticlelimit;
		if(plimit>0) {
			Event = GlobalLevelHandler(EventHandler.Find("GlobalLevelHandler"));
			if(Event) Event.QueueListActor(Event.particlelist,self,plimit);
		}

		Super.PostBeginPlay();
	}
}

class ZIceChunk : IceChunk
{
	GlobalLevelHandler Event;

	override void PostBeginPlay()
	{
		int plimit = d3d_perficechunklimit;
		if(plimit>0) {
			Event = GlobalLevelHandler(EventHandler.Find("GlobalLevelHandler"));
			if(Event) Event.QueueListActor(Event.icechunklist,self,plimit);
		}

		Super.PostBeginPlay();
	}
}

class ZCasing : Actor
{
	GlobalLevelHandler Event;

	override void PostBeginPlay()
	{
		int plimit = d3d_perfcasinglimit;
		if(plimit>0) {
			Event = GlobalLevelHandler(EventHandler.Find("GlobalLevelHandler"));
			if(Event) Event.QueueListActor(Event.casinglist,self,plimit);
		}

		Super.PostBeginPlay();
	}
}

class ZSmoke : Actor
{
	GlobalLevelHandler Event;

	override void PostBeginPlay()
	{
		int plimit = d3d_perfsmokelimit;
		if(plimit>0) {
			Event = GlobalLevelHandler(EventHandler.Find("GlobalLevelHandler"));
			if(Event) Event.QueueListActor(Event.smokelist,self,plimit);
		}

		Super.PostBeginPlay();
	}
}