//=============================================================================
// Gib Fountain
// by Kevin Cheung
// (c) 1997
// insert this code snippet in misc.qc
//=============================================================================

void() gibf_toggle =
{
	if (self.health == 0)
	{
		self.health = 1;
	}
	else
	{
		self.health = 0;
	}
};

void() LaunchGib =
{
	local vector org;
	local float gibtype;

	if (self.health == 1)
	{
		newmis = spawn ();
		newmis.owner = self;
		newmis.movetype = MOVETYPE_BOUNCE;
		newmis.solid = SOLID_BBOX;

		newmis.velocity_x = random() * self.speed *2 - self.speed;
		newmis.velocity_y = random() * self.speed *2 - self.speed;
		newmis.velocity_z = self.lip + random()*self.dmg;

		newmis.avelocity_x = random() * self.speed;
		newmis.avelocity_y = random() * self.speed;
		newmis.avelocity_z = random() * self.speed;

  	   	org = self.origin;

		newmis.touch = SUB_Null;
		newmis.classname = "magic_gib";
  	   	newmis.think = SUB_Remove;
		newmis.nextthink = time + self.delay;

		gibtype = rint(random()*3);
		if (gibtype == 0)
		{
		  setmodel (newmis, "progs/gib1.mdl");
		}
		else if (gibtype == 1) 
		{
		  setmodel (newmis, "progs/gib2.mdl");
		}
		else if (gibtype == 2) 
		{
		  setmodel (newmis, "progs/gib3.mdl");
		}
		else if (gibtype == 3) 
		{
		  setmodel (newmis, "progs/h_player.mdl");
		}
	
		setsize (newmis, '0 0 0', '0 0 0');		
		setorigin (newmis, org);

	}

	self.think = LaunchGib;
	self.nextthink = time + self.wait;
};

void() gib_fountain =
{
	SetMovedir ();
	self.use = gibf_toggle; 
	if (self.wait <= 0)
		self.wait = 1;
	self.nextthink = time + self.wait;
	self.think = LaunchGib;
};

//=============================================================================
// End Gib Fountain
//=============================================================================
