Example #1
0
//***********************************************************************************************
// Draws a light source for EDITOR purpose...
//-----------------------------------------------------------------------------------------------
// VERIFIED (Cyril 2001/10/15)
//***********************************************************************************************
void EERIEDrawLight(LPDIRECT3DDEVICE7 pd3dDevice,EERIE_LIGHT * el) 
{
//	long i;
 
	D3DTLVERTEX in;
	D3DTLVERTEX center;
	SETCULL(pd3dDevice,D3DCULL_NONE);
	
	if (el!=NULL)
	if (el->treat) 
	{
		el->mins.x=999999999.f;
		in.sx=el->pos.x;
		in.sy=el->pos.y;
		in.sz=el->pos.z;

		if (ACTIVECAM->type==CAM_TOPVIEW)
			EERIEDrawSprite(pd3dDevice,&in,11.f,lightsource_tc,EERIERGB(el->rgb.r,el->rgb.g,el->rgb.b),2.f);
		else 
		{
			EERIEDrawSprite(pd3dDevice,&in,11.f,lightsource_tc,EERIERGB(el->rgb.r,el->rgb.g,el->rgb.b),2.f);
			memcpy(&el->mins,&SPRmins,sizeof(EERIE_3D));
			memcpy(&el->maxs,&SPRmaxs,sizeof(EERIE_3D));

			if (el->selected)
			{
				if ((el->mins.x>=-200.f) && (el->mins.x<=1000.f))
				if ((el->mins.y>=-200.f) && (el->mins.y<=1000.f))
				{
					in.sx=el->pos.x;
					in.sy=el->pos.y;
					in.sz=el->pos.z;
					EERIETreatPoint(&in,&center);	

					if ((center.sz>0.f) && (center.sz<1000.f))
					{
						float t=(1.f-center.sz)*ACTIVECAM->use_focal*DIV3000;
						float rad=el->fallstart*t;
						EERIEDrawCircle(center.sx,center.sy,rad,0xFFFFFF00,0.0001f);
						rad=el->fallend*t;
						EERIEDrawCircle(center.sx,center.sy,rad,0xFFFF0000,0.0001f);
						rad=el->intensity*200.f*t;
						EERIEDrawCircle(center.sx,center.sy,rad,0xFF00FF00,0.0001f);
					}
				}
			}			
		}
	}
}
Example #2
0
//***********************************************************************************************
// Draws a light source for EDITOR purpose...
//-----------------------------------------------------------------------------------------------
// VERIFIED (Cyril 2001/10/15)
//***********************************************************************************************
void EERIEDrawLight(EERIE_LIGHT * el) 
{
//	long i;
 
	TexturedVertex in;
	TexturedVertex center;
	GRenderer->SetCulling(Renderer::CullNone);
	
	if(!el || !el->treat)
		return;


	el->mins.x=999999999.f;
	in.p = el->pos;

	EERIEDrawSprite(&in, 11.f, lightsource_tc, el->rgb.to<u8>(), 2.f);


	el->mins = SPRmins;
	el->maxs = SPRmaxs;

	if(el->selected) {
		if((el->mins.x>=-200.f) && (el->mins.x<=1000.f))
		if((el->mins.y>=-200.f) && (el->mins.y<=1000.f)) {
			in.p = el->pos;
			EE_RTP(&in, &center);

			if(center.p.z > 0.f && center.p.z < 1000.f) {
				float t=(1.f-center.p.z)*ACTIVECAM->orgTrans.use_focal*( 1.0f / 3000 );
				float rad=el->fallstart*t;
				EERIEDrawCircle(center.p.x, center.p.y, rad, Color::yellow, 0.0001f);
				rad=el->fallend*t;
				EERIEDrawCircle(center.p.x, center.p.y, rad, Color::red, 0.0001f);
				rad=el->intensity*200.f*t;
				EERIEDrawCircle(center.p.x, center.p.y, rad, Color::green, 0.0001f);
			}
		}
	}
}