123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579 |
- /*
- ===========================================================================
- Copyright (C) 1999-2005 Id Software, Inc.
- This file is part of Quake III Arena source code.
- Quake III Arena source code is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of the License,
- or (at your option) any later version.
- Quake III Arena source code is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with Foobar; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- ===========================================================================
- */
- // 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_bSelectTerrain = 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);
- GetDlgItem(IDC_CHECK_INTERNALBSP)->EnableWindow(FALSE);
- }
- else
- {
- GetDlgItem(IDC_EDIT_PAKFILE)->EnableWindow(TRUE);
- GetDlgItem(IDC_BTN_BROWSEPAK)->EnableWindow(TRUE);
- GetDlgItem(IDC_CHECK_INTERNALBSP)->EnableWindow(TRUE);
- }
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CPrefsDlg::OnOK()
- {
- m_nMoveSpeed = m_wndCamSpeed.GetPos();
- m_nAngleSpeed = (float)m_nMoveSpeed * 0.50;
- this->m_nTextureQuality = m_wndTexturequality.GetPos();
- SavePrefs();
- if (g_pParentWnd)
- g_pParentWnd->SetGridStatus();
- Sys_UpdateWindows(W_ALL);
- Undo_SetMaxSize(m_nUndoLevels);
- CDialog::OnOK();
- }
- void CPrefsDlg::LoadPrefs()
- {
- CString strBuff;
- CString strPrefab = g_strAppPath;
- AddSlash(strPrefab);
- strPrefab += "Prefabs\\";
-
- m_nMouse = AfxGetApp()->GetProfileInt(PREF_SECTION, MOUSE_KEY, MOUSE_DEF);
- if (m_nMouse == 0)
- m_nMouseButtons = 2;
- else
- m_nMouseButtons = 3;
- m_nView = AfxGetApp()->GetProfileInt(PREF_SECTION, WINDOW_KEY, WINDOW_DEF);
- m_strQuake2 = AfxGetApp()->GetProfileString(PREF_SECTION, Q2_KEY, Q2_DEF);
- m_bRunQuake = AfxGetApp()->GetProfileInt(PREF_SECTION, RUNQ2_KEY, RUNQ2_DEF);
- m_bTextureLock = AfxGetApp()->GetProfileInt(PREF_SECTION, TLOCK_KEY, TLOCK_DEF);
- m_bRotateLock = AfxGetApp()->GetProfileInt(PREF_SECTION, RLOCK_KEY, TLOCK_DEF);
- m_strLastProject = AfxGetApp()->GetProfileString(PREF_SECTION, LASTPROJ_KEY, "");
- m_strLastMap = AfxGetApp()->GetProfileString(PREF_SECTION, LASTMAP_KEY, "");
- m_bLoadLast = AfxGetApp()->GetProfileInt(PREF_SECTION, LOADLAST_KEY, LOADLAST_DEF);
- m_bRunBefore = AfxGetApp()->GetProfileInt(INTERNAL_SECTION, RUN_KEY, RUN_DEF);
- //m_b3Dfx = AfxGetApp()->GetProfileInt(PREF_SECTION, _3DFX_KEY, 0);
- m_bFace = AfxGetApp()->GetProfileInt(PREF_SECTION, FACE_KEY, 1);
- m_bInternalBSP = AfxGetApp()->GetProfileInt(PREF_SECTION, BSP_KEY, 0);
- m_bRightClick = AfxGetApp()->GetProfileInt(PREF_SECTION, RCLICK_KEY, 1);
- m_bVertex = AfxGetApp()->GetProfileInt(PREF_SECTION, VERTEX_KEY, 1);
- m_bAutoSave = AfxGetApp()->GetProfileInt(PREF_SECTION, AUTOSAVE_KEY, 1);
- m_bPAK = AfxGetApp()->GetProfileInt(PREF_SECTION, PAK_KEY, 1);
- m_bNewApplyHandling = AfxGetApp()->GetProfileInt(PREF_SECTION, NEWAPPLY_KEY, 0);
- m_bLoadLastMap = AfxGetApp()->GetProfileInt(PREF_SECTION, LOADLASTMAP_KEY, 0);
- m_bGatewayHack = AfxGetApp()->GetProfileInt(PREF_SECTION, HACK_KEY, 0);
- m_bTextureWindow = AfxGetApp()->GetProfileInt(PREF_SECTION, TEXTURE_KEY, 0);
- m_bCleanTiny = AfxGetApp()->GetProfileInt(PREF_SECTION, TINYBRUSH_KEY, 0);
- strBuff = AfxGetApp()->GetProfileString(PREF_SECTION, TINYSIZE_KEY, "0.5");
- m_fTinySize = atof(strBuff);
- m_nAutoSave = AfxGetApp()->GetProfileInt(PREF_SECTION, AUTOSAVETIME_KEY, 5);
- m_strAutoSave.Format("%i", m_nAutoSave);
- m_bSnapShots = AfxGetApp()->GetProfileInt(PREF_SECTION, SNAPSHOT_KEY, 0);
- m_strPAKFile = AfxGetApp()->GetProfileString(PREF_SECTION, PAKFILE_KEY, PAKFILE_DEF);
- m_nStatusSize = AfxGetApp()->GetProfileInt(PREF_SECTION, STATUS_KEY, 10);
- m_nMoveSpeed = AfxGetApp()->GetProfileInt(PREF_SECTION, MOVESPEED_KEY, 400);
- m_nAngleSpeed = AfxGetApp()->GetProfileInt(PREF_SECTION, ANGLESPEED_KEY, 300);
- m_bSetGame = AfxGetApp()->GetProfileInt(PREF_SECTION, SETGAME_KEY, 0);
- m_bCamXYUpdate = AfxGetApp()->GetProfileInt(PREF_SECTION, CAMXYUPDATE_KEY, 1);
- m_bNewLightDraw = AfxGetApp()->GetProfileInt(PREF_SECTION, LIGHTDRAW_KEY, 1);
- m_bCubicClipping = AfxGetApp()->GetProfileInt(PREF_SECTION, CUBICCLIP_KEY, 1);
- m_nCubicScale = AfxGetApp()->GetProfileInt(PREF_SECTION, CUBICSCALE_KEY, 13);
- m_bALTEdge = AfxGetApp()->GetProfileInt(PREF_SECTION, ALTEDGE_KEY, 0);
- m_bTextureBar = AfxGetApp()->GetProfileInt(PREF_SECTION, TEXTUREBAR_KEY, 0);
- m_strWhatGame = AfxGetApp()->GetProfileString(PREF_SECTION, WHATGAME_KEY, "Quake3");
- m_bFaceColors = AfxGetApp()->GetProfileInt(PREF_SECTION, FACECOLORS_KEY, 0);
- m_bQE4Painting = AfxGetApp()->GetProfileInt(PREF_SECTION, QE4PAINT_KEY, 1);
- m_bSnapTToGrid = AfxGetApp()->GetProfileInt(PREF_SECTION, SNAPT_KEY, 0);
- m_bXZVis = AfxGetApp()->GetProfileInt(PREF_SECTION, XZVIS_KEY, 0);
- m_bYZVis = AfxGetApp()->GetProfileInt(PREF_SECTION, YZVIS_KEY, 0);
- m_bZVis = AfxGetApp()->GetProfileInt(PREF_SECTION, ZVIS_KEY, 1);
- m_bSizePaint = AfxGetApp()->GetProfileInt(PREF_SECTION, SIZEPAINT_KEY, 0);
- m_bDLLEntities = AfxGetApp()->GetProfileInt(PREF_SECTION, DLLENTITIES_KEY, 0);
- m_bWideToolbar = AfxGetApp()->GetProfileInt(PREF_SECTION, WIDETOOLBAR_KEY, 1);
- m_bNoClamp = AfxGetApp()->GetProfileInt(PREF_SECTION, NOCLAMP_KEY, 0);
- m_strPrefabPath = AfxGetApp()->GetProfileString(PREF_SECTION, PREFAB_KEY, strPrefab);
- m_strUserPath = AfxGetApp()->GetProfileString(PREF_SECTION, USERINI_KEY, "");
- m_nRotation = AfxGetApp()->GetProfileInt(PREF_SECTION, ROTATION_KEY, 45);
- m_bSGIOpenGL = AfxGetApp()->GetProfileInt(PREF_SECTION, SGIOPENGL_KEY, 0);
- m_bBuggyICD = AfxGetApp()->GetProfileInt(PREF_SECTION, BUGGYICD_KEY, 0);
- m_bHiColorTextures = AfxGetApp()->GetProfileInt(PREF_SECTION, HICOLOR_KEY, 1);
- m_bChaseMouse = AfxGetApp()->GetProfileInt(PREF_SECTION, CHASEMOUSE_KEY, 1);
- m_nEntityShowState = AfxGetApp()->GetProfileInt(PREF_SECTION, ENTITYSHOW_KEY, 0);
- m_nTextureScale = AfxGetApp()->GetProfileInt(PREF_SECTION, TEXTURESCALE_KEY, 50);
- m_bTextureScrollbar = AfxGetApp()->GetProfileInt(PREF_SECTION, TEXTURESCROLLBAR_KEY, TRUE);
- m_bDisplayLists = AfxGetApp()->GetProfileInt(PREF_SECTION, DISPLAYLISTS_KEY, TRUE);
- m_bSwitchClip = AfxGetApp()->GetProfileInt(PREF_SECTION, SWITCHCLIP_KEY, TRUE);
- m_bSelectWholeEntities = AfxGetApp()->GetProfileInt(PREF_SECTION, SELWHOLEENTS_KEY, TRUE);
- m_nTextureQuality = AfxGetApp()->GetProfileInt(PREF_SECTION, TEXTUREQUALITY_KEY, 6);
- m_bShowShaders = AfxGetApp()->GetProfileInt(PREF_SECTION, SHOWSHADERS_KEY, TRUE);
- m_bGLLighting = AfxGetApp()->GetProfileInt(PREF_SECTION, GLLIGHTING_KEY, FALSE);
- m_nShader = AfxGetApp()->GetProfileInt(PREF_SECTION, LOADSHADERS_KEY, 0);
- m_bNoStipple = AfxGetApp()->GetProfileInt(PREF_SECTION, NOSTIPPLE_KEY, 0);
- m_nUndoLevels = AfxGetApp()->GetProfileInt(PREF_SECTION, UNDOLEVELS_KEY, 0);
-
- if (m_bRunBefore == FALSE)
- {
- SetGamePrefs();
- }
- }
- void CPrefsDlg::SavePrefs()
- {
- if (GetSafeHwnd())
- UpdateData(TRUE);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, MOUSE_KEY, m_nMouse);
- if (m_nMouse == 0)
- m_nMouseButtons = 2;
- else
- m_nMouseButtons = 3;
- AfxGetApp()->WriteProfileInt(PREF_SECTION, WINDOW_KEY, m_nView);
- AfxGetApp()->WriteProfileString(PREF_SECTION, Q2_KEY, m_strQuake2);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, RUNQ2_KEY, m_bRunQuake);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TLOCK_KEY, m_bTextureLock);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, RLOCK_KEY, m_bRotateLock);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, LOADLAST_KEY, m_bLoadLast);
- AfxGetApp()->WriteProfileString(PREF_SECTION, LASTPROJ_KEY, m_strLastProject);
- AfxGetApp()->WriteProfileString(PREF_SECTION, LASTMAP_KEY, m_strLastMap);
- AfxGetApp()->WriteProfileInt(INTERNAL_SECTION, RUN_KEY, m_bRunBefore);
- //AfxGetApp()->WriteProfileInt(PREF_SECTION, _3DFX_KEY, m_b3Dfx);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, FACE_KEY, m_bFace);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, BSP_KEY, m_bInternalBSP);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, RCLICK_KEY, m_bRightClick);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, VERTEX_KEY, m_bVertex);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, AUTOSAVE_KEY, m_bAutoSave);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, PAK_KEY, m_bPAK);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, LOADLASTMAP_KEY, m_bLoadLastMap);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TEXTURE_KEY, m_bTextureWindow);
- m_nAutoSave = atoi(m_strAutoSave);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, AUTOSAVETIME_KEY, m_nAutoSave);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SNAPSHOT_KEY, m_bSnapShots);
- AfxGetApp()->WriteProfileString(PREF_SECTION, PAKFILE_KEY, m_strPAKFile);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, STATUS_KEY, m_nStatusSize);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SETGAME_KEY, m_bSetGame);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, CAMXYUPDATE_KEY, m_bCamXYUpdate);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, LIGHTDRAW_KEY, m_bNewLightDraw);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, MOVESPEED_KEY, m_nMoveSpeed);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, ANGLESPEED_KEY, m_nAngleSpeed);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, CUBICCLIP_KEY, m_bCubicClipping);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, CUBICSCALE_KEY, m_nCubicScale);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, ALTEDGE_KEY, m_bALTEdge);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TEXTUREBAR_KEY, m_bTextureBar);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, FACECOLORS_KEY, m_bFaceColors);
- AfxGetApp()->WriteProfileString(PREF_SECTION, WHATGAME_KEY, m_strWhatGame);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, QE4PAINT_KEY, m_bQE4Painting);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SNAPT_KEY, m_bSnapTToGrid);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, XZVIS_KEY, m_bXZVis);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, YZVIS_KEY, m_bYZVis);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, ZVIS_KEY, m_bZVis);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SIZEPAINT_KEY, m_bSizePaint);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, DLLENTITIES_KEY, m_bDLLEntities);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, WIDETOOLBAR_KEY, m_bWideToolbar);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, NOCLAMP_KEY, m_bNoClamp);
- AfxGetApp()->WriteProfileString(PREF_SECTION, PREFAB_KEY, m_strPrefabPath);
- AfxGetApp()->WriteProfileString(PREF_SECTION, USERINI_KEY, m_strUserPath);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, ROTATION_KEY, m_nRotation);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SGIOPENGL_KEY, m_bSGIOpenGL);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, BUGGYICD_KEY, m_bBuggyICD);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, HICOLOR_KEY, m_bHiColorTextures);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, CHASEMOUSE_KEY, m_bChaseMouse);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, ENTITYSHOW_KEY, m_nEntityShowState);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TEXTURESCALE_KEY, m_nTextureScale);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TEXTURESCROLLBAR_KEY, m_bTextureScrollbar);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, DISPLAYLISTS_KEY, m_bDisplayLists);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SWITCHCLIP_KEY, m_bSwitchClip);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SELWHOLEENTS_KEY, m_bSelectWholeEntities);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, TEXTUREQUALITY_KEY, m_nTextureQuality);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, SHOWSHADERS_KEY, m_bShowShaders);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, GLLIGHTING_KEY, m_bGLLighting);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, LOADSHADERS_KEY, m_nShader);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, NOSTIPPLE_KEY, m_bNoStipple);
- AfxGetApp()->WriteProfileInt(PREF_SECTION, UNDOLEVELS_KEY, m_nUndoLevels);
- }
-
- void CPrefsDlg::OnBtnBrowsepak()
- {
- UpdateData(TRUE);
- CFileDialog dlg(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "PAK files (*.pak)|*.pak||", this);
- if (dlg.DoModal() == IDOK)
- {
- m_strPAKFile = dlg.GetPathName();
- UpdateData(FALSE);
- }
- }
- void CPrefsDlg::OnBtnBrowseprefab()
- {
- UpdateData(TRUE);
- BROWSEINFO bi;
- CString strPath;
- char* p = strPath.GetBuffer(MAX_PATH+1);
- bi.hwndOwner = GetSafeHwnd();
- bi.pidlRoot = NULL;
- bi.pszDisplayName = p;
- bi.lpszTitle = "Load textures from path";
- bi.ulFlags = 0;
- bi.lpfn = NULL;
- bi.lParam = NULL;
- bi.iImage = 0;
- LPITEMIDLIST pidlBrowse;
- pidlBrowse = SHBrowseForFolder(&bi);
- if (pidlBrowse)
- {
- SHGetPathFromIDList(pidlBrowse, p);
- strPath.ReleaseBuffer();
- AddSlash(strPath);
- m_strPrefabPath = strPath;
- UpdateData(FALSE);
- }
- }
- void CPrefsDlg::OnBtnBrowseuserini()
- {
- UpdateData(TRUE);
- CFileDialog dlg(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "INI files (*.ini)|*.ini||", this);
- if (dlg.DoModal() == IDOK)
- {
- m_strUserPath = dlg.GetPathName();
- UpdateData(FALSE);
- }
- }
- void CPrefsDlg::OnSelchangeComboWhatgame()
- {
- int n = m_wndWhatGame.GetCurSel();
- if (n >= 0)
- {
- m_wndWhatGame.GetLBText(n, m_strWhatGame);
- }
- SetGamePrefs();
- }
- void CPrefsDlg::SetGamePrefs()
- {
- if (strstr(m_strWhatGame, "Quake3") != NULL)
- {
- m_bHiColorTextures = TRUE;
- m_bWideToolbar = TRUE;
- m_strPAKFile = "PK3 files are loaded from the baseq3 path";
- m_bInternalBSP = FALSE;
- if (GetSafeHwnd())
- {
- GetDlgItem(IDC_EDIT_PAKFILE)->EnableWindow(FALSE);
- GetDlgItem(IDC_BTN_BROWSEPAK)->EnableWindow(FALSE);
- GetDlgItem(IDC_CHECK_INTERNALBSP)->EnableWindow(FALSE);
- }
- }
- else
- {
- m_bHiColorTextures = FALSE;
- m_bWideToolbar = FALSE;
- m_strPAKFile = PAKFILE_DEF;
- if (GetSafeHwnd())
- {
- GetDlgItem(IDC_EDIT_PAKFILE)->EnableWindow(TRUE);
- GetDlgItem(IDC_BTN_BROWSEPAK)->EnableWindow(TRUE);
- GetDlgItem(IDC_CHECK_INTERNALBSP)->EnableWindow(TRUE);
- }
- }
- SavePrefs();
- }
|