// Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. #include "stdafx.h" #include "database.h" #include "resource.h" #include "client_config.h" using namespace NLMISC; using namespace std; // *************************************************************************** // Bitmaps // *************************************************************************** const CBitmapId BitmapId[BitmapCount] = { { IDB_DISPLAY }, { IDB_DISPLAY_DETAILS }, { IDB_DISPLAY_ADVANCED }, { IDB_CARD }, { IDB_GENERAL }, { IDB_NETWORK }, { IDB_SOUND }, { IDB_UPDATE }, { IDB_TOP_RIGHT }, { IDB_WELCOME }, }; // *************************************************************************** // Pages // *************************************************************************** CPage Root; // *************************************************************************** CPage Pages[PageCount]; // *************************************************************************** void CreateDataBase () { Pages[PageGeneral].init (PageGeneral, "uiConfigGeneral", true, BitmapGeneral, IDD_GENERAL, &Root); Pages[PageDisplay].init (PageDisplay, "uiConfigDisplay", true, BitmapDisplay, IDD_DISPLAY, &Root); Pages[PageDisplayDetails].init (PageDisplayDetails, "uiConfigDisplayDetails", false, BitmapDisplayDetails, IDD_DISPLAY_DETAILS, &Pages[PageDisplay]); Pages[PageDisplayAdvanced].init (PageDisplayAdvanced, "uiConfigDisplayAdvanced", false, BitmapDisplayAdvanced, IDD_DISPLAY_ADVANCED, &Pages[PageDisplay]); Pages[PageSound].init (PageSound, "uiConfigSound", true, BitmapSound, IDD_SOUND, &Root); Pages[PageDisplaySysInfo].init (PageDisplaySysInfo, "uiConfigDisplaySysInfo", true, BitmapGeneral, IDD_SYSTEM_INFO, &Root); Pages[PageDisplayOpenGLInfo].init (PageDisplayOpenGLInfo, "uiConfigDisplayOpenGLInfo", false, BitmapCard, IDD_DISPLAY_INFO, &Pages[PageDisplaySysInfo]); Pages[PageDisplayOpenD3DInfo].init (PageDisplayOpenD3DInfo, "uiConfigDisplayD3DInfo", false, BitmapCard, IDD_DISPLAY_D3D, &Pages[PageDisplaySysInfo]); }; // *************************************************************************** CPage::CPage () { Parent = NULL; ChildId = 0xffffffff; } // *************************************************************************** void CPage::init (uint id, const char *name, bool bold, uint icon, uint resid, CPage *parent) { PageId = id; Parent = parent; Icon = icon; ResId = resid; ChildId = (uint)parent->Children.size (); if (parent) parent->Children.push_back (this); Name = name; Bold = bold; } // *************************************************************************** void CPage::select () { } // *************************************************************************** // Config File default // *************************************************************************** NLMISC::CConfigFile ConfigFileDefault; void LoadConfigFileDefault () { try { ConfigFileDefault.load (CONFIG_DEFAULT_FILE_NAME); } catch (Exception &e) { theApp.error (CI18N::get ("uiConfigErrorReadingTheFile")+" "CONFIG_FILE_NAME" : "+string (e.what ())); } } // *************************************************************************** // Merge method // *************************************************************************** struct CMergeDescriptor { const char *Name; TMergeMethod Method; }; // *************************************************************************** static const CMergeDescriptor MergeDescriptor[] = { { "DivideTextureSizeBy2", PreferSuperior }, { "LandscapeThreshold", PreferInferior }, { "MicroVeget", PreferFalse }, { "HDEntityTexture", PreferFalse }, { "Shadows", PreferFalse }, { "DisableDXTC", PreferFalse }, { "DisableVtxProgram", PreferTrue }, { "DisableVtxAGP", PreferTrue }, { "DisableTextureShdr", PreferTrue }, { "SoundOn", PreferFalse }, { "UseEax", PreferFalse }, { "MaxTrack", PreferSuperior }, }; // *************************************************************************** TMergeMethod GetMergeMethod (const char *varName) { const uint count = sizeof (MergeDescriptor) / sizeof (CMergeDescriptor); uint i; for (i=0; i<count; i++) { if (strcmp (MergeDescriptor[i].Name, varName) == 0) return MergeDescriptor[i].Method; } return PreferInferior; } // *************************************************************************** const float QualityToLandscapeThreshold[QUALITY_STEP] = { 100.0f, 200.0f, 1000.0f, 2000.0f, }; // *************************************************************************** const float QualityToZFar[QUALITY_STEP] = { 200, 300, 500, 1000, }; // *************************************************************************** const float QualityToLandscapeTileNear[QUALITY_STEP] = { 20, 30, 50, 100, }; // *************************************************************************** const int QualityToSkinNbMaxPoly[QUALITY_STEP] = { 15000, 30000, 50000, 100000, }; // *************************************************************************** const int QualityToNbMaxSkeletonNotCLod[QUALITY_STEP] = { 10, 15, 20, 30, }; // *************************************************************************** const int QualityToFxNbMaxPoly[QUALITY_STEP] = { 2500, 5000, 10000, 20000, }; // ***************************************************************************