Files
FC1/Editor/Settings.h
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

170 lines
4.8 KiB
C++

////////////////////////////////////////////////////////////////////////////
//
// Crytek Engine Source File.
// Copyright (C), Crytek Studios, 2002.
// -------------------------------------------------------------------------
// File name: settings.h
// Version: v1.00
// Created: 14/1/2003 by Timur.
// Compilers: Visual Studio.NET
// Description: General editor settings.
// -------------------------------------------------------------------------
// History:
//
////////////////////////////////////////////////////////////////////////////
#ifndef __settings_h__
#define __settings_h__
#pragma once
class CGrid;
enum EEditorPathName
{
EDITOR_PATH_OBJECTS = 0,
EDITOR_PATH_TEXTURES = 1,
EDITOR_PATH_SOUNDS = 2,
EDITOR_PATH_LAST = 3,
};
//////////////////////////////////////////////////////////////////////////
//! Parameters needed to use Microsoft source safe.
//////////////////////////////////////////////////////////////////////////
struct SSourceSafeInitParams
{
CString user;
CString exeFile;
CString databasePath;
CString project;
};
struct SGizmoSettings
{
float axisGizmoSize;
bool axisGizmoText;
int axisGizmoMaxCount;
float helpersScale;
SGizmoSettings();
};
//////////////////////////////////////////////////////////////////////////
// Settings for AVI encoding.
//////////////////////////////////////////////////////////////////////////
struct SAVIEncodingSettings
{
SAVIEncodingSettings() : nFrameRate(25),codec("DIVX") {};
int nFrameRate;
CString codec;
};
//////////////////////////////////////////////////////////////////////////
struct SViewportsSettings
{
//! If enabled always show entity radiuse.
bool bAlwaysShowRadiuses;
//! If enabled always display boxes for prefab entity.
bool bAlwaysDrawPrefabBox;
//! If enabled always display objects inside prefab.
bool bAlwaysDrawPrefabInternalObjects;
//! True if 2D viewports will be synchronized with same view and origin.
bool bSync2DViews;
//! Camera FOV for perspective View.
float fDefaultFov;
//! Camera Aspect Ratio for perspective View.
float fDefaultAspectRatio;
//! Show safe frame.
bool bShowSafeFrame;
};
/** Various editor settings.
*/
struct SEditorSettings
{
SEditorSettings();
void Save();
void Load();
void PostInitApply();
//////////////////////////////////////////////////////////////////////////
// Variables.
//////////////////////////////////////////////////////////////////////////
int undoLevels;
//! Speed of camera movement.
float cameraMoveSpeed;
float cameraFastMoveSpeed;
//! Hide mask for objects.
int objectHideMask;
//! Selection mask for objects.
int objectSelectMask;
//////////////////////////////////////////////////////////////////////////
// Viewport settings.
//////////////////////////////////////////////////////////////////////////
SViewportsSettings viewports;
//////////////////////////////////////////////////////////////////////////
// Files.
//////////////////////////////////////////////////////////////////////////
bool bBackupOnSave;
//////////////////////////////////////////////////////////////////////////
// Autobackup.
//////////////////////////////////////////////////////////////////////////
//! Save auto backup file every autoSaveTime minutes.
int autoBackupTime;
//! When this variable set to true automatic file backup is enabled.
bool autoBackupEnabled;
//! After this amount of minutes message box with reminder to save will pop on.
int autoRemindTime;
//! Autobackup filename.
CString autoBackupFilename;
//////////////////////////////////////////////////////////////////////////
//! If true preview windows is displayed when browsing geometries.
bool bPreviewGeometryWindow;
//! If true display geometry browser window for brushes and simple entities.
bool bGeometryBrowserPanel;
//! Pointer to currently used grid.
CGrid *pGrid;
SGizmoSettings gizmo;
//! Source safe parameters.
SSourceSafeInitParams ssafeParams;
//! Text editor.
CString textEditorForScript;
CString textEditorForShaders;
//////////////////////////////////////////////////////////////////////////
//! Editor data search paths.
std::vector<CString> searchPaths[EDITOR_PATH_LAST];
SAVIEncodingSettings aviSettings;
private:
void SaveValue( const char *sSection,const char *sKey,int value );
void SaveValue( const char *sSection,const char *sKey,float value );
void SaveValue( const char *sSection,const char *sKey,const CString &value );
void LoadValue( const char *sSection,const char *sKey,int &value );
void LoadValue( const char *sSection,const char *sKey,float &value );
void LoadValue( const char *sSection,const char *sKey,bool &value );
void LoadValue( const char *sSection,const char *sKey,CString &value );
};
//! Single instance of editor settings for fast access.
extern SEditorSettings gSettings;
#endif // __settings_h__