//////////////////////////////////////////////////////////////////////////// // // Crytek Engine Source File. // Copyright (C), Crytek Studios, 2002. // ------------------------------------------------------------------------- // File name: settings.cpp // Version: v1.00 // Created: 14/1/2003 by Timur. // Compilers: Visual Studio.NET // Description: // ------------------------------------------------------------------------- // History: // //////////////////////////////////////////////////////////////////////////// #include "StdAfx.h" #include "Settings.h" ////////////////////////////////////////////////////////////////////////// // Global Instance of Editor settings. ////////////////////////////////////////////////////////////////////////// SEditorSettings gSettings; ////////////////////////////////////////////////////////////////////////// SGizmoSettings::SGizmoSettings() { axisGizmoSize = 0.2f; axisGizmoText = true; axisGizmoMaxCount = 50; helpersScale = 1; } ////////////////////////////////////////////////////////////////////////// SEditorSettings::SEditorSettings() { undoLevels = 50; objectHideMask = 0; objectSelectMask = 0xFFFFFFFF; // Initially all selectable. autoBackupFilename = "Autobackup"; autoBackupEnabled = false; autoBackupTime = 10; autoRemindTime = 0; viewports.bAlwaysShowRadiuses = false; viewports.bAlwaysDrawPrefabBox = true; viewports.bAlwaysDrawPrefabInternalObjects = false; viewports.bSync2DViews = true; viewports.fDefaultAspectRatio = 0.75; // 600/800 viewports.fDefaultFov = DEG2RAD(90); // 90 degrees. viewports.bShowSafeFrame = false; cameraMoveSpeed = 1; cameraFastMoveSpeed = 2; bPreviewGeometryWindow = true; bGeometryBrowserPanel = true; bBackupOnSave = true; // Init source safe params. ssafeParams.databasePath = "\\\\Server2\\XISLE\\ArtworkVss"; ssafeParams.exeFile = "C:\\Program Files\\Microsoft Visual Studio\\VSS\\win32\\ss.exe"; ssafeParams.project = "$/MasterCD"; ssafeParams.user = ""; textEditorForScript = "uedit32.exe"; textEditorForShaders = "uedit32.exe"; } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::SaveValue( const char *sSection,const char *sKey,int value ) { AfxGetApp()->WriteProfileInt( sSection,sKey,value ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::SaveValue( const char *sSection,const char *sKey,float value ) { CString str; str.Format( "%g",value ); AfxGetApp()->WriteProfileString( sSection,sKey,str ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::SaveValue( const char *sSection,const char *sKey,const CString &value ) { AfxGetApp()->WriteProfileString( sSection,sKey,value ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::LoadValue( const char *sSection,const char *sKey,int &value ) { value = AfxGetApp()->GetProfileInt(sSection,sKey,value ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::LoadValue( const char *sSection,const char *sKey,float &value ) { CString defaultVal; defaultVal.Format( "%g",value ); defaultVal = AfxGetApp()->GetProfileString( sSection,sKey,defaultVal ); value = atof(defaultVal); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::LoadValue( const char *sSection,const char *sKey,bool &value ) { value = AfxGetApp()->GetProfileInt(sSection,sKey,value ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::LoadValue( const char *sSection,const char *sKey,CString &value ) { value = AfxGetApp()->GetProfileString( sSection,sKey,value ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::Save() { // Save settings to registry. SaveValue( "Settings","UndoLevels",undoLevels ); SaveValue("Settings","AutoBackup",autoBackupEnabled ); SaveValue("Settings","AutoBackupTime",autoBackupTime ); SaveValue("Settings","AutoRemindTime",autoRemindTime ); SaveValue("Settings","CameraMoveSpeed",cameraMoveSpeed ); SaveValue("Settings","CameraFastMoveSpeed",cameraFastMoveSpeed ); SaveValue("Settings","PreviewGeometryWindow",bPreviewGeometryWindow ); SaveValue("Settings","GeometryBrowserPanel",bGeometryBrowserPanel ); SaveValue("Settings","AutobackupFile",autoBackupFilename ); SaveValue("Settings","BackupOnSave",bBackupOnSave ); ////////////////////////////////////////////////////////////////////////// // Viewports. ////////////////////////////////////////////////////////////////////////// SaveValue("Settings","AlwaysShowRadiuses",viewports.bAlwaysShowRadiuses ); SaveValue("Settings","AlwaysShowPrefabBox",viewports.bAlwaysDrawPrefabBox ); SaveValue("Settings","AlwaysShowPrefabObjects",viewports.bAlwaysDrawPrefabInternalObjects ); SaveValue("Settings","Sync2DViews",viewports.bSync2DViews ); SaveValue("Settings","PerspectiveFov",viewports.fDefaultFov ); SaveValue("Settings","PerspectiveAspectRatio",viewports.fDefaultAspectRatio ); SaveValue("Settings","ShowSafeFrame",viewports.bShowSafeFrame ); ////////////////////////////////////////////////////////////////////////// // Gizmos. ////////////////////////////////////////////////////////////////////////// SaveValue( "Settings","AxisGizmoSize",gizmo.axisGizmoSize ); SaveValue( "Settings","AxisGizmoText",gizmo.axisGizmoText ); SaveValue( "Settings","AxisGizmoMaxCount",gizmo.axisGizmoMaxCount ); SaveValue( "Settings","HelpersScale",gizmo.helpersScale ); ////////////////////////////////////////////////////////////////////////// SaveValue( "Settings","TextEditorScript",textEditorForScript ); SaveValue( "Settings","TextEditorShaders",textEditorForShaders ); // Save source safe settings. SaveValue( "Settings","SSafeUser",ssafeParams.user ); SaveValue( "Settings","SSafeDatabase",ssafeParams.databasePath ); SaveValue( "Settings","SSafeExe",ssafeParams.exeFile ); SaveValue( "Settings","SSafeProject",ssafeParams.project ); SaveValue( "Settings","AVI_FrameRate",aviSettings.nFrameRate ); SaveValue( "Settings","AVI_Codec",aviSettings.codec ); /* ////////////////////////////////////////////////////////////////////////// // Save paths. ////////////////////////////////////////////////////////////////////////// for (int id = 0; id < EDITOR_PATH_LAST; id++) { for (int i = 0; i < searchPaths[id].size(); i++) { CString path = searchPaths[id][i]; CString key; key.Format( "Paths","Path_%.2d_%.2d",id,i ); SaveValue( "Paths",key,path ); } } */ } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::Load() { // Load settings from registry. SaveValue( "Settings","UndoLevels",undoLevels ); LoadValue( "Settings","AutoBackup",autoBackupEnabled ); LoadValue("Settings","AutoBackupTime",autoBackupTime ); LoadValue("Settings","AutoRemindTime",autoRemindTime ); LoadValue("Settings","CameraMoveSpeed",cameraMoveSpeed ); LoadValue("Settings","CameraFastMoveSpeed",cameraFastMoveSpeed ); LoadValue("Settings","PreviewGeometryWindow",bPreviewGeometryWindow ); LoadValue("Settings","GeometryBrowserPanel",bGeometryBrowserPanel ); LoadValue("Settings","AutobackupFile",autoBackupFilename ); LoadValue("Settings","BackupOnSave",bBackupOnSave ); ////////////////////////////////////////////////////////////////////////// // Viewports. ////////////////////////////////////////////////////////////////////////// LoadValue("Settings","AlwaysShowRadiuses",viewports.bAlwaysShowRadiuses ); LoadValue("Settings","AlwaysShowPrefabBox",viewports.bAlwaysDrawPrefabBox ); LoadValue("Settings","AlwaysShowPrefabObjects",viewports.bAlwaysDrawPrefabInternalObjects ); LoadValue("Settings","Sync2DViews",viewports.bSync2DViews ); LoadValue("Settings","PerspectiveFov",viewports.fDefaultFov ); LoadValue("Settings","PerspectiveAspectRatio",viewports.fDefaultAspectRatio ); LoadValue("Settings","ShowSafeFrame",viewports.bShowSafeFrame ); ////////////////////////////////////////////////////////////////////////// // Gizmos. ////////////////////////////////////////////////////////////////////////// LoadValue( "Settings","AxisGizmoSize",gizmo.axisGizmoSize ); LoadValue( "Settings","AxisGizmoText",gizmo.axisGizmoText ); LoadValue( "Settings","AxisGizmoMaxCount",gizmo.axisGizmoMaxCount ); LoadValue( "Settings","HelpersScale",gizmo.helpersScale ); ////////////////////////////////////////////////////////////////////////// LoadValue( "Settings","TextEditorScript",textEditorForScript ); LoadValue( "Settings","TextEditorShaders",textEditorForShaders ); // Load source safe settings. LoadValue( "Settings","SSafeUser",ssafeParams.user ); LoadValue( "Settings","SSafeDatabase",ssafeParams.databasePath ); LoadValue( "Settings","SSafeExe",ssafeParams.exeFile ); LoadValue( "Settings","SSafeProject",ssafeParams.project ); LoadValue( "Settings","AVI_FrameRate",aviSettings.nFrameRate ); LoadValue( "Settings","AVI_Codec",aviSettings.codec ); ////////////////////////////////////////////////////////////////////////// // Load paths. ////////////////////////////////////////////////////////////////////////// for (int id = 0; id < EDITOR_PATH_LAST; id++) { int i = 0; searchPaths[id].clear(); while (true) { CString key; key.Format( "Path_%.2d_%.2d",id,i ); CString path; LoadValue( "Paths",key,path ); if (path.IsEmpty()) break; searchPaths[id].push_back( path ); } } ////////////////////////////////////////////////////////////////////////// // Default paths. ////////////////////////////////////////////////////////////////////////// if (searchPaths[EDITOR_PATH_OBJECTS].empty()) searchPaths[EDITOR_PATH_OBJECTS].push_back( "Objects" ); if (searchPaths[EDITOR_PATH_TEXTURES].empty()) searchPaths[EDITOR_PATH_TEXTURES].push_back( "Textures" ); if (searchPaths[EDITOR_PATH_SOUNDS].empty()) searchPaths[EDITOR_PATH_SOUNDS].push_back( "Sounds" ); } ////////////////////////////////////////////////////////////////////////// void SEditorSettings::PostInitApply() { }