context: //------------------------------------------------------------------------------
  // Revenge Of The Cats: Ethernet
  // Copyright notices are in the file named COPYING.
  //------------------------------------------------------------------------------
  
  datablock ParticleData(OrangeSniperProjectileFireExplosion_CloudParticles)
  {
  	dragCoeffiecient	  = 0.4;
  	gravityCoefficient	= 0;
  	inheritedVelFactor	= 0.025;
  
  	lifetimeMS			  = 1250;
  	lifetimeVarianceMS	= 0;
  
  	useInvAlpha =  false;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/corona.png";
  
  	colors[0]	  = "1.0 1.0 1.0 1.0";
  	colors[1]	  = "1.0 0.5 0.0 1.0";
  	colors[2]	  = "1.0 0.5 0.0 0.0";
  	sizes[0]		= 2.0;
  	sizes[1]		= 2.0;
  	sizes[2]		= 2.0;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  
  	allowLighting = false;
  };
  
  datablock ParticleEmitterData(OrangeSniperProjectileFireExplosion_CloudEmitter)
  {
  	ejectionPeriodMS = 5;
  	periodVarianceMS = 0;
  
  	ejectionVelocity = 0;
  	velocityVariance = 0;
  
  	thetaMin			= 0.0;
  	thetaMax			= 90.0;
  
  	lifetimeMS		 = 100;
  
  	particles = "OrangeSniperProjectileFireExplosion_CloudParticles";
  };
  
  datablock ParticleData(OrangeSniperProjectileEmitter_Particles)
  {
  	dragCoeffiecient    = 0.4;
  	gravityCoefficient	= -0.5;	// rises slowly
  	inheritedVelFactor	= 0.0;
  
  	lifetimeMS         = 2500;
  	lifetimeVarianceMS = 0;
  
  	useInvAlpha =  true;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/smoke_particle.png";
  
  	colors[0]	  = "0.9 0.9 0.9 0.8";
  	colors[1]	  = "0.9 0.9 0.9 0.4";
  	colors[2]	  = "0.9 0.9 0.9 0.0";
  	sizes[0]		= 1.0;
  	sizes[1]		= 1.5;
  	sizes[2]		= 2.0;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  
  	allowLighting = true;
  };
  
  datablock ParticleEmitterData(OrangeSniperProjectileEmitter)
  {
  	ejectionPeriodMS = 10;
  	periodVarianceMS = 3;
  	ejectionVelocity = 0.0;
  	velocityVariance = 0.0;
  	ejectionOffset	= 0.0;
  	thetaMin		= 0;
  	thetaMax		= 10;
  	phiReferenceVel  = 360;
  	phiVariance		= 0;
  	overrideAdvances = false;
  	orientParticles  = false;
  	lifetimeMS		 = 0;
  	particles = "OrangeSniperProjectileEmitter_Particles";
  };
  
  datablock LaserBeamData(OrangeSniperProjectileLaserTail)
  {
  	hasLine = true;
  	lineStartColor	= "1.00 0.00 0.00 0.0";
  	lineBetweenColor = "1.00 0.00 0.00 0.25";
  	lineEndColor	  = "1.00 0.00 0.00 0.5";
  	lineWidth		  = 2.0;
  
  	hasInner = false;
  	innerStartColor = "0.00 0.00 0.90 0.5";
  	innerBetweenColor = "0.50 0.00 0.90 0.9";
  	innerEndColor = "1.00 1.00 1.00 0.9";
  	innerStartWidth = "0.05";
  	innerBetweenWidth = "0.05";
  	innerEndWidth = "0.05";
  
  	hasOuter = false;
  	outerStartColor = "0.00 0.00 0.90 0.0";
  	outerBetweenColor = "0.50 0.00 0.90 0.8";
  	outerEndColor = "1.00 1.00 1.00 0.8";
  	outerStartWidth = "0.3";
  	outerBetweenWidth = "0.25";
  	outerEndWidth = "0.1";
  
  	bitmap = "share/shapes/rotc/weapons/blaster/lasertail.red";
  	bitmapWidth = 0.20;
  //	crossBitmap = "share/shapes/rotc/weapons/blaster/lasertail.red.cross";
  //	crossBitmapWidth = 0.10;
  
  	betweenFactor = 0.5;
  	blendMode = 1;
  };
  
  datablock MultiNodeLaserBeamData(OrangeSniperProjectileLaserTrailTwo)
  {
  	hasLine   = false;
  	lineColor = "1.00 1.00 1.00 1.0";
     lineWidth = 2.0;
  
  	hasInner = true;
  	innerColor = "1.00 1.00 1.00 1.0";
  	innerWidth = "0.25";
  
  	hasOuter = true;
  	outerColor = "1.00 1.00 1.00 1.0";
  	outerWidth = "0.45";
  
  	bitmap = "share/textures/rotc/laser1.orange";
  	bitmapWidth = 2.4;
  
  	blendMode = 1;
  	renderMode = $MultiNodeLaserBeamRenderMode::FaceViewer;
  	fadeTime = 300;
  
      windCoefficient = 0.0;
  
  	// node x movement...
  	nodeMoveMode[0]     = $NodeMoveMode::None;
  	nodeMoveSpeed[0]    = 16.0;
  	nodeMoveSpeedAdd[0] = -32.0;
  	// node y movement...
  	nodeMoveMode[1]     = $NodeMoveMode::None;
  	nodeMoveSpeed[1]    = 16.0;
  	nodeMoveSpeedAdd[1] = -32.0;
  	// node z movement...
  	nodeMoveMode[2]     = $NodeMoveMode::None;
  	nodeMoveSpeed[2]    = 16.0;
  	nodeMoveSpeedAdd[2] = -32.0;
  
  	nodeDistance = 4;
  };
  
  datablock ParticleData(OrangeSniperProjectileExplosion_Sparks)
  {
  	dragCoefficient		= 1;
  	gravityCoefficient	= 0.0;
  	inheritedVelFactor	= 0.0;
  	constantAcceleration = 0.0;
  	lifetimeMS			  = 500;
  	lifetimeVarianceMS	= 350;
  	textureName			 = "share/textures/rotc/corona1.png";
  	colors[0]	  = "1.0 1.0 1.0 1.0";
  	colors[1]	  = "1.0 1.0 1.0 1.0";
  	colors[2]	  = "1.0 1.0 1.0 0.0";
  	sizes[0]		= 0.5;
  	sizes[1]		= 0.5;
  	sizes[2]		= 0.75;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  	allowLighting = false;
     renderDot = true;
  };
  
  datablock ParticleEmitterData(OrangeSniperProjectileExplosion_SparksEmitter)
  {
  	ejectionPeriodMS = 1;
  	periodVarianceMS = 0;
  	ejectionVelocity = 15;
  	velocityVariance = 6.75;
  	ejectionOffset	= 0.0;
  	thetaMin			= 80;
  	thetaMax			= 90;
  	phiReferenceVel  = 0;
  	phiVariance		= 360;
  	overrideAdvances = false;
  	orientParticles  = false;
  	lifetimeMS		 = 100;
  	particles = "OrangeSniperProjectileExplosion_Sparks";
  };
  
  datablock DebrisData(SniperProjectileExplosion_SmallDebris)
  {
  	// shape...
  	shapeFile = "share/shapes/rotc/misc/debris1.white.dts";
  
  	// bounce...
  	staticOnMaxBounce = true;
  	numBounces = 5;
  
  	// physics...
  	gravModifier = 2.0;
  	elasticity = 0.6;
  	friction = 0.1;
  
  	// spin...
  	minSpinSpeed = 60;
  	maxSpinSpeed = 600;
  
  	// lifetime...
  	lifetime = 2.0;
  	lifetimeVariance = 1.0;
  };
  
  datablock MultiNodeLaserBeamData(SniperProjectileExplosion_LargeDebris_LaserTrail)
  {
  	hasLine = false;
  	lineColor	= "1.00 1.00 1.00 0.05";
  
  	hasInner = false;
  	innerColor = "1.00 1.00 0.00 0.3";
  	innerWidth = "0.20";
  
  	hasOuter = true;
  	outerColor = "1.00 1.00 1.00 0.05";
  	outerWidth = "0.40";
  
  //	bitmap = "share/shapes/rotc/weapons/sniperrifle/explosion.trail";
  //	bitmapWidth = 0.25;
  
  	blendMode = 1;
  	renderMode = $MultiNodeLaserBeamRenderMode::FaceViewer;
  	fadeTime = 1000;
  };
  
  datablock ParticleData(SniperProjectileExplosion_LargeDebris_Particles2)
  {
  	dragCoefficient		= 1;
  	gravityCoefficient	= 0.0;
  	windCoefficient		= 0.0;
  	inheritedVelFactor	= 0.0;
  	constantAcceleration = 0.0;
  	lifetimeMS			  = 1000;
  	lifetimeVarianceMS	= 0;
  	textureName			 = "share/textures/rotc/cross1";
  	colors[0]	  = "1.0 1.0 1.0 0.6";
  	colors[1]	  = "1.0 1.0 1.0 0.4";
  	colors[2]	  = "1.0 1.0 1.0 0.2";
  	colors[3]	  = "1.0 1.0 1.0 0.0";
  	sizes[0]		= 1.0;
  	sizes[1]		= 1.0;
  	sizes[2]		= 1.0;
  	sizes[3]		= 1.0;
  	times[0]		= 0.0;
  	times[1]		= 0.333;
  	times[2]		= 0.666;
  	times[3]		= 1.0;
  };
  
  datablock ParticleEmitterData(SniperProjectileExplosion_LargeDebris_Emitter2)
  {
  	ejectionPeriodMS = 30;
  	periodVarianceMS = 0;
  	ejectionVelocity = 2.0;
  	velocityVariance = 0.0;
  	ejectionOffset	= 0.0;
  	thetaMin			= 45;
  	thetaMax			= 45;
  	phiReferenceVel  = 75000;
  	phiVariance		= 0;
  	overrideAdvances = false;
  	orientParticles  = false;
  	lifetimeMS		 = 0;
  	particles = "SniperProjectileExplosion_LargeDebris_Particles2";
  };
  
  datablock ParticleData(SniperProjectileExplosion_LargeDebris_Particles1)
  {
  	dragCoefficient		= 1;
  	gravityCoefficient	= 0.0;
  	windCoefficient		= 0.0;
  	inheritedVelFactor	= 0.0;
  	constantAcceleration = 0.0;
  	lifetimeMS			  = 100;
  	lifetimeVarianceMS	= 0;
  	textureName			 = "share/textures/rotc/cross1";
  	colors[0]	  = "1.0 1.0 1.0 1.0";
  	colors[1]	  = "1.0 1.0 1.0 1.0";
  	colors[2]	  = "1.0 1.0 1.0 0.5";
  	colors[3]	  = "1.0 1.0 1.0 0.0";
  	sizes[0]		= 2.0;
  	sizes[1]		= 2.0;
  	sizes[2]		= 2.0;
  	sizes[3]		= 2.0;
  	times[0]		= 0.0;
  	times[1]		= 0.333;
  	times[2]		= 0.666;
  	times[3]		= 1.0;
  };
  
  datablock ParticleEmitterData(SniperProjectileExplosion_LargeDebris_Emitter1)
  {
  	ejectionPeriodMS = 5;
  	periodVarianceMS = 0;
  	ejectionVelocity = 10.0;
  	velocityVariance = 0.0;
  	ejectionOffset	= 0.0;
  	thetaMin			= 0;
  	thetaMax			= 180;
  	phiReferenceVel  = 0;
  	phiVariance		= 360;
  	overrideAdvances = false;
  	orientParticles  = false;
  	lifetimeMS		 = 0;
  	particles = "SniperProjectileExplosion_LargeDebris_Particles1";
  };
  
  datablock ParticleData(SniperProjectileExplosion_LargeDebris_SmokeParticle)
  {
  	dragCoeffiecient	  = 0.4;
  	gravityCoefficient	= -0.0;	// rises slowly
     windCoefficient  = 0.0;
  	inheritedVelFactor	= 0.0;
  
  	lifetimeMS			  = 4000;
  	lifetimeVarianceMS	= 0;
  
  	useInvAlpha = true;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/smoke_particle.png";
  
  	colors[0]	  = "0.0 0.0 0.0 0.8";
  	colors[1]	  = "0.0 0.0 0.0 0.4";
  	colors[2]	  = "0.0 0.0 0.0 0.0";
  	sizes[0]		= 0.5;
  	sizes[1]		= 8.0;
  	sizes[2]		= 2.0;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  
  	allowLighting = false;
  };
  
  datablock ParticleEmitterData(SniperProjectileExplosion_LargeDebris_SmokeEmitter)
  {
  	ejectionPeriodMS = 10;
  	periodVarianceMS = 0;
  
  	ejectionVelocity = 0.0;
  	velocityVariance = 0.0;
  
  	thetaMin			= 0.0;
  	thetaMax			= 180.0;
  
  	//lifetimeMS		 = 250;
  
  	particles = "SniperProjectileExplosion_LargeDebris_SmokeParticle";
  };
  
  datablock ParticleData(SniperProjectileExplosion_LargeDebris_FireParticle)
  {
  	dragCoeffiecient	  = 0.0;
  	gravityCoefficient	= -1.5;	// rises slowly
  	inheritedVelFactor	= 0.0;
  
  	lifetimeMS			  = 1000;
  	lifetimeVarianceMS	= 0;
  
  	useInvAlpha =  false;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/corona.png";
  
  	colors[0]	  = "1.0 0.5 0.0 1.0";
  	colors[1]	  = "1.0 0.5 0.0 0.5";
  	colors[2]	  = "1.0 0.5 0.0 0.0";
  	sizes[0]		= 4.0;
  	sizes[1]		= 0.5;
  	sizes[2]		= 0.0;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  
  	allowLighting = false;
  };
  
  datablock ParticleEmitterData(SniperProjectileExplosion_LargeDebris_FireEmitter)
  {
  	ejectionPeriodMS = 20;
  	periodVarianceMS = 0;
  	ejectionOffset	  = 0.2;
  	ejectionVelocity = 0;
  	velocityVariance = 0;
  
  	thetaMin			= 90.0;
  	thetaMax			= 90.0;
  
  	//lifetimeMS		 = 8000;
  
  	particles = "SniperProjectileExplosion_LargeDebris_FireParticle";
  };
  
  datablock ExplosionData(SniperProjectileExplosion_LargeDebris_Explosion)
  {
  	soundProfile	= SniperDebrisSound;
  
  	emitter[0] = DefaultMediumWhiteDebrisEmitter;
  
  	//debris = SniperProjectileExplosion_SmallDebris;
  	//debrisThetaMin = 0;
  	//debrisThetaMax = 60;
  	//debrisNum = 5;
  	//debrisVelocity = 15.0;
  	//debrisVelocityVariance = 10.0;
  };
  
  datablock DebrisData(SniperProjectileExplosion_LargeDebris)
  {
  	// shape...
  	//shapeFile = "share/shapes/rotc/misc/debris2.white.dts";
  
  	//explosion = SniperProjectileExplosion_LargeDebris_Explosion;
  
  	//laserTrail = SniperProjectileExplosion_LargeDebris_LaserTrail;
  	emitters[0] = SniperProjectileExplosion_LargeDebris_SmokeEmitter;
  	//emitters[1] = SniperProjectileExplosion_LargeDebris_FireEmitter;
  	//emitters[2] = SniperProjectileExplosion_LargeDebris_Emitter2;
  
  	// bounce...
  	numBounces = 0;
  	explodeOnMaxBounce = false;
  
  	// physics...
  	gravModifier = 10.0;
  	elasticity = 0.6;
  	friction = 0.1;
  
  	// spin...
  	minSpinSpeed = 60;
  	maxSpinSpeed = 600;
  
  	// lifetime...
  	lifetime = 0.25;
  	lifetimeVariance = 0.0;
  };
  
  datablock ParticleData(SniperProjectileExplosion_DustParticle)
  {
  	dragCoeffiecient	  = 0.4;
  	gravityCoefficient	= -0.1;	// rises slowly
  	inheritedVelFactor	= 0.025;
  
  	lifetimeMS			  = 2000;
  	lifetimeVarianceMS	= 0;
  
  	useInvAlpha =  true;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/smoke_particle.png";
  
  	colors[0]	  = "0.4 0.4 0.4 0.4";
  	colors[1]	  = "0.4 0.4 0.4 0.2";
  	colors[2]	  = "0.4 0.4 0.4 0.0";
  	sizes[0]		= 0.0;
  	sizes[1]		= 6.0;
  	sizes[2]		= 0.6;
  	times[0]		= 0.0;
  	times[1]		= 0.5;
  	times[2]		= 1.0;
  
  	allowLighting = false;
  };
  
  datablock ParticleEmitterData(SniperProjectileExplosion_DustEmitter)
  {
  	ejectionPeriodMS = 5;
  	periodVarianceMS = 0;
  
  	ejectionVelocity = 2.0;
  	velocityVariance = 0.25;
  
  	thetaMin			= 0.0;
  	thetaMax			= 180.0;
  
  	lifetimeMS		 = 50;
  
  	particles = "SniperProjectileExplosion_DustParticle";
  };
  
  datablock ParticleData(OrangeSniperProjectileExplosion_Cloud)
  {
  	dragCoeffiecient	  = 0.4;
  	gravityCoefficient	= 0;
  	inheritedVelFactor	= 0.025;
  
  	lifetimeMS			  = 600;
  	lifetimeVarianceMS	= 0;
  
  	useInvAlpha =  false;
  	spinRandomMin = -200.0;
  	spinRandomMax =  200.0;
  
  	textureName = "share/textures/rotc/corona.png";
  
  	colors[0]	  = "1.0 1.0 1.0 1.0";
  	colors[1]	  = "1.0 0.5 0.0 1.0";
  	colors[2]	  = "1.0 0.5 0.0 0.0";
  	sizes[0]		= 3.0;
  	sizes[1]		= 3.0;
  	sizes[2]		= 0.0;
  	times[0]		= 0.0;
  	times[1]		= 0.2;
  
gt: 	times[2]		= 1.0;