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); }
//--------------------------------------------------------------------------------------- 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); }