Exemple #1
0
void EMapObjectTurrent::Process()
{
	double &the_time = ztime->ztime;
	int i, mx, my;

	if(killme) return;

	//check
	if(the_time >= final_time)
	{
		killme = true;
		EndExplosion();
		ZSoundEngine::PlayWavRestricted(TURRENT_EXPLOSION_SND, ex, ey);
		return;
	}

	{
		double time_dif = (the_time - init_time);

		//move
		x = sx + (dx * time_dif);
		y = sy + (dy * time_dif);

		size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif;
		y -= size * 30;

		size += 1.0;
		
		angle = dangle * time_dif;

		while(angle >= 360) angle -= 360;
		while(angle < 0) angle += 360;
	}
}
void ETurrentMissile::Process()
{
	double &the_time = ztime->ztime;
	//int i, mx, my;

	if(killme) return;

	//check
	if(the_time >= final_time)
	{
		killme = true;
		EndExplosion();
		ZSoundEngine::PlayWavRestricted(TURRENT_EXPLOSION_SND, ex, ey);

		//place crater
		if(zmap) zmap->CreateCrater(ex, ey, false, 0.35);

		return;
	}

	if(the_time >= next_render_time)
	{
		render_i++;
		if(render_i>=max_render) render_i = 0;

		next_render_time = the_time + 0.1;
	}

	{
		double time_dif = (the_time - init_time);

		//move
		x = sx + (dx * time_dif);
		y = sy + (dy * time_dif);

		size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif;
		size += 1.0;
		y -= size * 30;
		y += 30;

		angle = dangle * time_dif;

		while(angle >= 360) angle -= 360;
		while(angle < 0) angle += 360;
	}
}
Exemple #3
0
void ERockTurrent::Process()
{
	double &the_time = ztime->ztime;

	if(killme) return;

	if(the_time >= final_time)
	{
		EndExplosion();
		killme = true;
		return;
	}

	if(the_time >= next_process_time)
	{
		render_i++;
		if(render_i >=12) render_i = 0;

		next_process_time = the_time + 0.07;
	}

	{
		double time_dif = (the_time - init_time);
		double up_amount;

		//move
		x = sx + (dx * time_dif);
		y = sy + (dy * time_dif);

		size = -(rise / (final_time - init_time)) * (time_dif * time_dif) + rise * time_dif;
		size += 1;
		y -= (size-1) * 30;

		angle = dangle * time_dif;

		while(angle >= 360) angle -= 360;
		while(angle < 0) angle += 360;
	}
}