//*********************************************************************************************** // 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,¢er); 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); } } } } } }
//*********************************************************************************************** // 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, ¢er); 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); } } } }