summaryrefslogtreecommitdiff
path: root/hammer/options.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /hammer/options.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'hammer/options.h')
-rw-r--r--hammer/options.h252
1 files changed, 252 insertions, 0 deletions
diff --git a/hammer/options.h b/hammer/options.h
new file mode 100644
index 0000000..df8093f
--- /dev/null
+++ b/hammer/options.h
@@ -0,0 +1,252 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Defines options that are written to the registry.
+//
+//=============================================================================//
+
+#ifndef OPTIONS_H
+#define OPTIONS_H
+#pragma once
+
+
+#pragma warning(push, 1)
+#pragma warning(disable:4701 4702 4530)
+#include <fstream>
+#pragma warning(pop)
+#include <afxtempl.h>
+
+
+class CGameConfig;
+class KeyValues;
+enum TextureAlignment_t;
+
+
+class COptionsGeneral
+{
+public:
+ int nMaxCameras;
+ int iUndoLevels;
+ BOOL bLockingTextures;
+ BOOL bScaleLockingTextures;
+ TextureAlignment_t eTextureAlignment;
+ BOOL bLoadwinpos;
+ BOOL bIndependentwin;
+ BOOL bGroupWhileIgnore;
+ BOOL bStretchArches;
+ BOOL bShowHelpers;
+ BOOL bCheckVisibleMapErrors;
+ int iTimeBetweenSaves;
+ int iMaxAutosaveSpace;
+ int iMaxAutosavesPerMap;
+ BOOL bClosedCorrectly;
+ char szAutosaveDir[MAX_PATH];
+ BOOL bUseVGUIModelBrowser;
+ BOOL bShowCollisionModels;
+ BOOL bShowDetailObjects;
+ BOOL bShowNoDrawBrushes;
+ BOOL bEnableAutosave;
+ BOOL bShowHiddenTargetsAsBroken;
+ BOOL bRadiusCulling;
+};
+
+
+class COptionsTextures
+{
+public:
+ CStringArray TextureFiles;
+ int nTextureFiles;
+ float fBrightness;
+};
+
+
+class COptionsColors
+{
+public:
+
+ bool bUseCustom; // Whether to use the custom colors or not.
+ bool bScaleAxisColor; // Whether to use the intensity slider to scale the axis color in the 2D view.
+ bool bScaleGridColor; // Whether to use the intensity slider to scale the grid color in the 2D view.
+ bool bScaleGridDotColor; // Whether to use the intensity slider to scale the dotted grid color in the 2D view.
+ bool bScaleGrid10Color; // Whether to use the intensity slider to scale the 10 grid color in the 2D view.
+ bool bScaleGrid1024Color; // Whether to use the intensity slider to scale the 1024 grid color in the 2D view.
+
+ COLORREF clrAxis; // The 2D view axis color.
+ COLORREF clrGrid; // The 2D view grid color.
+ COLORREF clrGridDot; // The 2D view dotted grid color.
+ COLORREF clrGrid10; // The 2D view grid color for every 10th line.
+ COLORREF clrGrid1024; // The 2D view grid color for every 1024 units line.
+ COLORREF clrBackground; // The 2D view background color.
+ COLORREF clrBrush; // The color of brushes.
+ COLORREF clrEntity; // The default color of point entities & brush entities, can be overridden by the FGD.
+ COLORREF clrSelection; // The color of selected objects.
+ COLORREF clrVertex; // The color of vertices.
+ COLORREF clrToolHandle; // The color of tool handles.
+ COLORREF clrToolBlock; // The color of the block tool.
+ COLORREF clrToolSelection; // The color of the selection tool.
+ COLORREF clrToolMorph; // The color of the morph tool.
+ COLORREF clrToolPath; // The color of the path tool.
+ COLORREF clrToolDrag; // The color of tool bounds while it is being dragged.
+ COLORREF clrModelCollisionWireframe; // The color of a model's collision wireframe
+ COLORREF clrModelCollisionWireframeDisabled; // The color of a model's collision wireframe when set to "Not Solid" via the entity properties
+
+};
+
+
+class COptionsView2D
+{
+public:
+
+ BOOL bCrosshairs;
+ BOOL bGroupCarve;
+ BOOL bScrollbars;
+ BOOL bRotateConstrain;
+ BOOL bDrawVertices;
+ BOOL bDrawModels;
+ BOOL bWhiteOnBlack;
+ BOOL bGridHigh1024;
+ BOOL bGridHigh10;
+ BOOL bHideSmallGrid;
+ BOOL bNudge;
+ BOOL bOrientPrimitives;
+ BOOL bAutoSelect;
+ BOOL bSelectbyhandles;
+ BOOL bKeepclonegroup;
+ BOOL bGridHigh64;
+ BOOL bCenteroncamera;
+ BOOL bUsegroupcolors;
+ BOOL bGridDots;
+ int iDefaultGrid;
+ int iGridIntensity;
+ int iGridHighSpec;
+};
+
+
+class COptionsView3D
+{
+public:
+
+ BOOL bHardware; // Whether to use hardware acceleration (disabled for OpenGL).
+ BOOL bReverseY; // Wether to reverse the mouse's Y axis when mouse looking.
+ BOOL bUseMouseLook; // Whether to use the engine's default movement controls.
+ int iBackPlane; // Distance to far clipping plane in world units.
+ int nModelDistance; // Distance in world units within which studio models render.
+ int nDetailDistance; // Distance in world units within which detail props render.
+ BOOL bAnimateModels; // Whether to animate studio models.
+ int nForwardSpeedMax; // Max forward speed in world units per second.
+ int nTimeToMaxSpeed; // Time to max forward speed in milliseconds.
+ BOOL bFilterTextures; // Whether to filter textures.
+ BOOL bReverseSelection; // Whether to animate studio models.
+ bool bPreviewModelFade; // Whether to preview model fade in the 3D view.
+ float fFOV; // FOV of 3D Camera
+ float fLightConeLength; // Multiplier for light_spot cone length
+};
+
+
+class COptionsConfigs
+{
+public:
+
+ COptionsConfigs(void);
+ virtual ~COptionsConfigs(void);
+
+ CGameConfig *AddConfig(void);
+
+ int LoadGameConfigs();
+ void SaveGameConfigs();
+ bool ResetGameConfigs( bool bOverwrite );
+
+ inline int GetGameConfigCount();
+ inline CGameConfig *GetGameConfig(int nIndex);
+
+ // find a game config based on ID:
+ CGameConfig *FindConfig(DWORD dwID, int *piIndex = NULL);
+ CGameConfig *FindConfigForGame(const char *szGame);
+
+ int nConfigs;
+ CTypedPtrArray<CPtrArray, CGameConfig*> Configs;
+ CString m_strConfigDir;
+
+private:
+
+ int LoadGameConfigsBlock( KeyValues *pBlock );
+ int ImportOldGameConfigs(const char *pszFileName);
+};
+
+
+//-----------------------------------------------------------------------------
+// Purpose: Functions for iterating the game configs.
+//-----------------------------------------------------------------------------
+int COptionsConfigs::GetGameConfigCount()
+{
+ return nConfigs;
+}
+
+
+CGameConfig *COptionsConfigs::GetGameConfig(int nIndex)
+{
+ return Configs.GetAt(nIndex);
+}
+
+
+class COptions
+{
+public:
+
+ COptions();
+
+ bool Init();
+ bool Read();
+ void SetDefaults();
+ void Write( BOOL fOverwrite, BOOL fSaveConfigs );
+ void SetClosedCorrectly(BOOL bClosed);
+
+ // This happens if it can't initialize the file system, or if they're missing gameinfo.txt.
+ // It forces them to choose or create a config that works.
+ bool RunConfigurationDialog();
+
+ void PerformChanges(DWORD = 0xffffffff);
+
+ // Accessors:
+ TextureAlignment_t GetTextureAlignment(void);
+ TextureAlignment_t SetTextureAlignment(TextureAlignment_t eTextureAlignment);
+
+ bool GetShowHelpers(void);
+ void SetShowHelpers(bool bShow);
+
+ BOOL SetLockingTextures(BOOL b);
+ BOOL IsLockingTextures(void);
+
+ BOOL SetScaleLockingTextures(BOOL b);
+ BOOL IsScaleLockingTextures(void);
+
+ bool IsVGUIModelBrowserEnabled();
+
+ // Attributes:
+ UINT uDaysSinceInstalled;
+
+ // Flags for PerformChanges:
+ enum
+ {
+ secTextures = 0x01,
+ secGeneral = 0x02,
+ secView2D = 0x04,
+ secView3D = 0x08,
+ secConfigs = 0x10
+ };
+
+ COptionsGeneral general;
+ COptionsView2D view2d;
+ COptionsView3D view3d;
+ COptionsTextures textures;
+ COptionsConfigs configs;
+ COptionsColors colors;
+
+private:
+
+ void ReadColorSettings(void);
+};
+
+extern COptions Options;
+
+
+#endif // OPTIONS_H