
// Fog Spawner --------------------------------------------------------------

class FogSpawner : Actor
{
	Default
	{
		+NOSECTOR +NOBLOCKMAP
		+FLOATBOB
		+NOGRAVITY
		+INVISIBLE
	}

	native void A_FogSpawn();

	States
	{
	Spawn:
		TNT1 A 20 A_FogSpawn;
		Loop;
	}
}

// Small Fog Patch ----------------------------------------------------------

class FogPatchSmall : Actor
{
	Default
	{
		Speed 1;
		+NOBLOCKMAP +NOGRAVITY +NOCLIP +FLOAT
		+NOTELEPORT
		RenderStyle "Translucent";
		Alpha 0.6;
	}

	native void A_FogMove();

	States
	{
	Spawn:
		FOGS ABCDE 7 A_FogMove;
		Loop;
	Death:
		FOGS E 5;
		Stop;
	}
}

// Medium Fog Patch ---------------------------------------------------------

class FogPatchMedium : FogPatchSmall
{
	States
	{
	Spawn:
		FOGM ABCDE 7 A_FogMove;
		Loop;
	Death:
		FOGS ABCDE 5;
		Goto Super::Death;
	}
}

// Large Fog Patch ----------------------------------------------------------

class FogPatchLarge : FogPatchMedium
{
	States
	{
	Spawn:
		FOGL ABCDE 7 A_FogMove;
		Loop;
	Death:
		FOGM ABCDEF 4;
		Goto Super::Death;
	}
}
