prefsdlg.cpp
来自「quake3工具源码。包括生成bsp文件」· C++ 代码 · 共 557 行 · 第 1/2 页
CPP
557 行
// PrefsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "PrefsDlg.h"
#include "shlobj.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define PREF_SECTION "Prefs"
#define INTERNAL_SECTION "Internals"
#define MOUSE_KEY "MouseButtons"
#define WINDOW_KEY "QE4StyleWindows"
#define LAYOUT_KEY "WindowLayout"
#define Q2_KEY "Quake2Dir"
#define RUNQ2_KEY "RunQuake2Run"
#define TLOCK_KEY "TextureLock"
#define RLOCK_KEY "RotateLock"
#define LOADLAST_KEY "LoadLast"
#define LOADLASTMAP_KEY "LoadLastMap"
#define LASTPROJ_KEY "LastProject"
#define LASTMAP_KEY "LastMap"
#define RUN_KEY "RunBefore"
#define _3DFX_KEY "Use3Dfx"
#define FACE_KEY "NewFaceGrab"
#define BSP_KEY "InternalBSP"
#define RCLICK_KEY "NewRightClick"
#define VERTEX_KEY "NewVertex"
#define AUTOSAVE_KEY "Autosave"
#define AUTOSAVETIME_KEY "AutosaveMinutes"
#define PAK_KEY "UsePAK"
#define NEWAPPLY_KEY "ApplyDismissesSurface"
#define HACK_KEY "Gatewayescapehack"
#define TEXTURE_KEY "NewTextureWindowStuff"
#define TINYBRUSH_KEY "CleanTinyBrushes"
#define TINYSIZE_KEY "CleanTinyBrusheSize"
#define SNAPSHOT_KEY "Snapshots"
#define PAKFILE_KEY "PAKFile"
#define STATUS_KEY "StatusPointSize"
#define MOVESPEED_KEY "MoveSpeed"
#define ANGLESPEED_KEY "AngleSpeed"
#define SETGAME_KEY "UseSetGame"
#define CAMXYUPDATE_KEY "CamXYUpdate"
#define LIGHTDRAW_KEY "NewLightStyle"
#define WHATGAME_KEY "WhichGame"
#define CUBICCLIP_KEY "CubicClipping"
#define CUBICSCALE_KEY "CubicScale"
#define ALTEDGE_KEY "ALTEdgeDrag"
#define TEXTUREBAR_KEY "UseTextureBar"
#define FACECOLORS_KEY "FaceColors"
#define QE4PAINT_KEY "QE4Paint"
#define SNAPT_KEY "SnapT"
#define XZVIS_KEY "XZVIS"
#define YZVIS_KEY "YZVIS"
#define ZVIS_KEY "ZVIS"
#define SIZEPAINT_KEY "SizePainting"
#define DLLENTITIES_KEY "DLLEntities"
#define WIDETOOLBAR_KEY "WideToolBar"
#define NOCLAMP_KEY "NoClamp"
#define PREFAB_KEY "PrefabPath"
#define USERINI_KEY "UserINIPath"
#define ROTATION_KEY "Rotation"
#define SGIOPENGL_KEY "SGIOpenGL"
#define BUGGYICD_KEY "BuggyICD"
#define HICOLOR_KEY "HiColorTextures"
#define CHASEMOUSE_KEY "ChaseMouse"
#define ENTITYSHOW_KEY "EntityShow"
#define TEXTURESCALE_KEY "TextureScale"
#define TEXTURESCROLLBAR_KEY "TextureScrollbar"
#define DISPLAYLISTS_KEY "UseDisplayLists"
#define NORMALIZECOLORS_KEY "NormalizeColors"
#define SHADERS_KEY "UseShaders"
#define SWITCHCLIP_KEY "SwitchClipKey"
#define SELWHOLEENTS_KEY "SelectWholeEntitiesKey"
#define TEXTURESUBSET_KEY "UseTextureSubsetLoading"
#define TEXTUREQUALITY_KEY "TextureQuality"
#define SHOWSHADERS_KEY "ShowShaders"
#define SHADERTEST_KEY "ShaderTest"
#define GLLIGHTING_KEY "UseGLLighting"
#define LOADSHADERS_KEY "LoadShaders"
#define NOSTIPPLE_KEY "NoStipple"
#define UNDOLEVELS_KEY "UndoLevels"
#define MOUSE_DEF 1
#define WINDOW_DEF 0
#define Q2_DEF "c:\\quake2\\quake2.exe"
#define Q3_DEF "c:\\Program Files\\Quake III Arena\\quake3.exe"
#define PAKFILE_DEF "c:\\quake2\\baseq2\\pak0.pak"
#define RUNQ2_DEF 0
#define TLOCK_DEF 1
#define LOADLAST_DEF 1
#define RUN_DEF 0
/////////////////////////////////////////////////////////////////////////////
// CPrefsDlg dialog
CPrefsDlg::CPrefsDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPrefsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPrefsDlg)
m_strQuake2 = _T("c:\\quake3\\");
m_nMouse = 1;
m_nView = 0;
m_bLoadLast = FALSE;
m_bFace = FALSE;
m_bInternalBSP = FALSE;
m_bRightClick = FALSE;
m_bRunQuake = FALSE;
m_bSetGame = FALSE;
m_bVertex = FALSE;
m_bAutoSave = TRUE;
m_bNewApplyHandling = FALSE;
m_strAutoSave = _T("5");
m_bPAK = FALSE;
m_bLoadLastMap = FALSE;
m_bTextureWindow = FALSE;
m_bSnapShots = FALSE;
m_fTinySize = 0.5;
m_bCleanTiny = FALSE;
m_strPAKFile = _T("c:\\quake2\\baseq2\\pak0.pak");
m_nStatusSize = 10;
m_bCamXYUpdate = FALSE;
m_bNewLightDraw = FALSE;
m_strPrefabPath = _T("");
m_nWhatGame = 0;
m_strWhatGame = _T("Quake3");
m_bALTEdge = FALSE;
m_bTextureBar = FALSE;
m_bFaceColors = FALSE;
m_bQE4Painting = TRUE;
m_bSnapTToGrid = FALSE;
m_bXZVis = FALSE;
m_bYZVis = FALSE;
m_bZVis = FALSE;
m_bSizePaint = FALSE;
m_bDLLEntities = FALSE;
m_bWideToolbar = TRUE;
m_bNoClamp = FALSE;
m_strUserPath = _T("");
m_nRotation = 0;
m_bSGIOpenGL = FALSE;
m_bBuggyICD = FALSE;
m_bHiColorTextures = TRUE;
m_bChaseMouse = FALSE;
m_bTextureScrollbar = TRUE;
m_bDisplayLists = TRUE;
m_bShowShaders = FALSE;
m_nShader = -1;
m_bNoStipple = FALSE;
//}}AFX_DATA_INIT
//LoadPrefs();
m_bSelectCurves = TRUE;
m_nEntityShowState = 0;
m_nTextureScale = 2;
m_bSwitchClip = FALSE;
m_bSelectWholeEntities = TRUE;
m_nTextureQuality = 3;
m_bShowShaders = TRUE;
m_bGLLighting = FALSE;
m_nShader = 0;
m_nUndoLevels = 64;
}
void CPrefsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPrefsDlg)
DDX_Control(pDX, IDC_SPIN_UNDO, m_wndUndoSpin);
DDX_Control(pDX, IDC_SPIN_POINTSIZE, m_wndFontSpin);
DDX_Control(pDX, IDC_SLIDER_TEXTUREQUALITY, m_wndTexturequality);
DDX_Control(pDX, IDC_COMBO_WHATGAME, m_wndWhatGame);
DDX_Control(pDX, IDC_SLIDER_CAMSPEED, m_wndCamSpeed);
DDX_Control(pDX, IDC_SPIN_AUTOSAVE, m_wndSpin);
DDX_Text(pDX, IDC_EDIT_QUAKE2, m_strQuake2);
DDX_Radio(pDX, IDC_RADIO_MOUSE, m_nMouse);
DDX_Radio(pDX, IDC_RADIO_VIEWTYPE, m_nView);
DDX_Check(pDX, IDC_CHECK_LOADLAST, m_bLoadLast);
DDX_Check(pDX, IDC_CHECK_FACE, m_bFace);
DDX_Check(pDX, IDC_CHECK_INTERNALBSP, m_bInternalBSP);
DDX_Check(pDX, IDC_CHECK_RIGHTCLICK, m_bRightClick);
DDX_Check(pDX, IDC_CHECK_RUNQUAKE, m_bRunQuake);
DDX_Check(pDX, IDC_CHECK_SETGAME, m_bSetGame);
DDX_Check(pDX, IDC_CHECK_VERTEX, m_bVertex);
DDX_Check(pDX, IDC_CHECK_AUTOSAVE, m_bAutoSave);
DDX_Text(pDX, IDC_EDIT_AUTOSAVE, m_strAutoSave);
DDX_Check(pDX, IDC_CHECK_PAK, m_bPAK);
DDX_Check(pDX, IDC_CHECK_LOADLASTMAP, m_bLoadLastMap);
DDX_Check(pDX, IDC_CHECK_TEXTUREWINDOW, m_bTextureWindow);
DDX_Check(pDX, IDC_CHECK_SNAPSHOTS, m_bSnapShots);
DDX_Text(pDX, IDC_EDIT_PAKFILE, m_strPAKFile);
DDX_Text(pDX, IDC_EDIT_STATUSPOINTSIZE, m_nStatusSize);
DDV_MinMaxInt(pDX, m_nStatusSize, 2, 14);
DDX_Check(pDX, IDC_CHECK_CAMXYUPDATE, m_bCamXYUpdate);
DDX_Check(pDX, IDC_CHECK_LIGHTDRAW, m_bNewLightDraw);
DDX_Text(pDX, IDC_EDIT_PREFABPATH, m_strPrefabPath);
DDX_CBString(pDX, IDC_COMBO_WHATGAME, m_strWhatGame);
DDX_Check(pDX, IDC_CHECK_ALTDRAG, m_bALTEdge);
DDX_Check(pDX, IDC_CHECK_TEXTURETOOLBAR, m_bTextureBar);
DDX_Check(pDX, IDC_CHECK_FACECOLOR, m_bFaceColors);
DDX_Check(pDX, IDC_CHECK_QE4PAINTING, m_bQE4Painting);
DDX_Check(pDX, IDC_CHECK_SNAPT, m_bSnapTToGrid);
DDX_Check(pDX, IDC_CHECK_SIZEPAINT, m_bSizePaint);
DDX_Check(pDX, IDC_CHECK_DLLENTITIES, m_bDLLEntities);
DDX_Check(pDX, IDC_CHECK_WIDETOOLBAR, m_bWideToolbar);
DDX_Check(pDX, IDC_CHECK_NOCLAMP, m_bNoClamp);
DDX_Text(pDX, IDC_EDIT_USERPATH, m_strUserPath);
DDX_Text(pDX, IDC_EDIT_ROTATION, m_nRotation);
DDX_Check(pDX, IDC_CHECK_SGIOPENGL, m_bSGIOpenGL);
DDX_Check(pDX, IDC_CHECK_BUGGYICD, m_bBuggyICD);
DDX_Check(pDX, IDC_CHECK_HICOLOR, m_bHiColorTextures);
DDX_Check(pDX, IDC_CHECK_MOUSECHASE, m_bChaseMouse);
DDX_Check(pDX, IDC_CHECK_TEXTURESCROLLBAR, m_bTextureScrollbar);
DDX_Check(pDX, IDC_CHECK_DISPLAYLISTS, m_bDisplayLists);
DDX_CBIndex(pDX, IDC_COMBO_SHADERS, m_nShader);
DDX_Check(pDX, IDC_CHECK_NOSTIPPLE, m_bNoStipple);
DDX_Text(pDX, IDC_EDIT_UNDOLEVELS, m_nUndoLevels);
DDV_MinMaxInt(pDX, m_nUndoLevels, 1, 64);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPrefsDlg, CDialog)
//{{AFX_MSG_MAP(CPrefsDlg)
ON_BN_CLICKED(IDC_BTN_BROWSE, OnBtnBrowse)
ON_BN_CLICKED(IDC_BTN_BROWSEPAK, OnBtnBrowsepak)
ON_BN_CLICKED(IDC_BTN_BROWSEPREFAB, OnBtnBrowseprefab)
ON_BN_CLICKED(IDC_BTN_BROWSEUSERINI, OnBtnBrowseuserini)
ON_CBN_SELCHANGE(IDC_COMBO_WHATGAME, OnSelchangeComboWhatgame)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPrefsDlg message handlers
void CPrefsDlg::OnBtnBrowse()
{
UpdateData(TRUE);
CFileDialog dlg(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Executables (*.exe)|*.exe||", this);
if (dlg.DoModal() == IDOK)
{
m_strQuake2 = dlg.GetPathName();
UpdateData(FALSE);
}
}
BOOL CPrefsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndSpin.SetRange(1,60);
m_wndCamSpeed.SetRange(10, 800);
m_wndCamSpeed.SetPos(m_nMoveSpeed);
this->m_wndTexturequality.SetRange(0, 3);
this->m_wndTexturequality.SetPos(m_nTextureQuality);
m_wndFontSpin.SetRange(4,24);
m_wndUndoSpin.SetRange(1,64);
m_wndWhatGame.AddString("Quake2");
m_wndWhatGame.AddString("Quake3");
GetDlgItem(IDC_CHECK_HICOLOR)->EnableWindow(TRUE);
GetDlgItem(IDC_CHECK_NOCLAMP)->EnableWindow(TRUE);
//GetDlgItem(IDC_CHECK_NOCLAMP)->EnableWindow(FALSE);
m_wndWhatGame.SelectString(-1,m_strWhatGame);
if (strstr(m_strWhatGame, "Quake3") != NULL)
{
GetDlgItem(IDC_EDIT_PAKFILE)->EnableWindow(FALSE);
GetDlgItem(IDC_BTN_BROWSEPAK)->EnableWindow(FALSE);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?