void CLogSerializer::SafeRollover(const char*Directory,const char* NewFileName,const char* Prefix, const char* ClosedPrefix)
{
    CriticalBlock b(crit);
    Rollover(ClosedPrefix);
    Init();
    Open(Directory, NewFileName, Prefix);
}
示例#2
0
//---------------------------------------------------------------------------------------
void z_ed3View::OnMouseMove(UINT nFlags, CPoint point) 
{
    V3      scrPt;
    CPoint  pt = _mm._pt - point;
    

    if(_mm._rdown || _mm._ldown)
    {
        _mm._pt    = point; 
        //SetCursorPos(_mm._pt.x, _mm._pt.y);

		if(AKEY('L'))
		{
			DrawInHrc(_hdc);
			CView::OnMouseMove(nFlags, point);
			REAL cf = _fov + pt.y;
			
			if(cf < 35) cf=35;
			if(cf>140)  cf=140;

			_fov = cf ;
			DOC()->_cam.SetFov(_fov);

			SBT(3,MKSTR("FOV :%03.0f", _fov));
			return;
		}

/*
		if(!AKEY(VK_LBUTTON))
			_mm._ldown=0;

		if(!AKEY(VK_RBUTTON))
			_mm._rdown=0;
*/
    }

    DOC()->Make3dCursorPos(this, point, _rt, scrPt);


    if(_mm._ldown)
    {
        
        if(abs(pt.x) > 0|| 
           abs(pt.y) > 0)
        {
            if(_mm._rdown)
            {
                if(AKEY(VK_SPACE))
				{
                    DOC()->_cam.MoveUp(pt.y*64.f); 
				}
                else
				{
                    DOC()->_cam.MoveUp(pt.y*2.f);
				}

				if(AKEY(VK_SPACE))
				{
					DOC()->_cam.MoveSide(-pt.x*64.f);    	
				}
				else
				{
					DOC()->_cam.MoveSide(-pt.x*2.f);
				}
            }
			else
			{
				if(AKEY(VK_SHIFT))
				{
					V3		cr ;
					int		nC = 0;
					Brush** ppb = DOC()->GetSelBrushes(nC);
					if(nC){
						cr = (*ppb)->_box.GetCenter();
					}
					REAL dst = -vdist(DOC()->_cam._pos , cr);
					DOC()->_cam._pos = cr;
					DOC()->_cam.Rotate(-pt.x/128.f,-pt.y/128.f,0);
					DOC()->_cam._pos = cr + (DOC()->_cam._fwd)*dst;


				}
				else
				{
					DOC()->_cam.Rotate(-pt.x/128.f,-pt.y/128.f,0);
				}
    			
			}
			_rotating = TRUE;
        }
		
        SBT(2,MKSTR("CAM: %04.2f %04.2f z:%04.2f",	DOC()->_cam._pos.x/GMeters,
															DOC()->_cam._pos.y/GMeters,
															DOC()->_cam._pos.z/GMeters));
		if(DOC()->_compviewmode != C_NA)
		{
			DOC()->Invalidate(); //allow to see the full BSP
		}
		else
			DrawInHrc(_hdc);

	}
    else if(_mm._rdown )
    {
        
        if(AKEY(VK_SPACE) )
            DOC()->_cam.MoveFwd(pt.y*64.f);
        else
            DOC()->_cam.MoveFwd(pt.y*4.f);
	
		SBT(2,MKSTR("CAM: %04.2f %04.2f z:%04.2f",DOC()->_cam._pos.x/GMeters,
														  DOC()->_cam._pos.y/GMeters,
														  DOC()->_cam._pos.z/GMeters));
        _rotating = TRUE;
		if(DOC()->_compviewmode != C_NA)
		{
			DOC()->Invalidate();
		}
		else
			DrawInHrc(_hdc);

    }
    
    if(_mm._rdown || _mm._ldown)
        Rollover(point);
    
	CView::OnMouseMove(nFlags, point);
}