diff --git a/Source/Game/Scripts/GameShellSq.cppi b/Source/Game/Scripts/GameShellSq.cppi index 00f86fe4..64109185 100644 --- a/Source/Game/Scripts/GameShellSq.cppi +++ b/Source/Game/Scripts/GameShellSq.cppi @@ -367,9 +367,9 @@ char const* MISSIONS_PATH = "RESOURCE\\Missions"; int RESOLUTION_COUNT = 4; _V2i RESOLUTIONS[] = { { 800 , 600 }, { 1024, 768 }, { 1280, 960 }, { 1600, 1200 } }; -int LOD_COUNT = 3; +int LOD_COUNT = 4; int LODS[] = { 50 - , 100, 10000 }; + , 100, 200, 300 }; #ifndef __XScript_struct_Reel__ #define __XScript_struct_Reel__ #pragma pack( push, __XScript_struct_pack__, 4 ) @@ -454,7 +454,7 @@ struct SquadShellUIPrm_ParameterSection : ParameterSection add_dependency(".\\Scripts\\GameShellSq.prm"); add_dependency(".\\Scripts\\SquadShellEnums.inl"); add_dependency(".\\Scripts\\UnitAttribute.inl"); - description = 281150917; + description = 3763440746; reserve(285); add(&_sqsh_cursor_count, "_sqsh_cursor_count", 1356362679); add(&_sqsh_cursors, "_sqsh_cursors", 2573016843); @@ -690,7 +690,7 @@ struct SquadShellUIPrm_ParameterSection : ParameterSection add(&RESOLUTION_COUNT, "RESOLUTION_COUNT", 4071838562); add(&RESOLUTIONS, "RESOLUTIONS", 3181893157); add(&LOD_COUNT, "LOD_COUNT", 2701994995); - add(&LODS, "LODS", 1214535828); + add(&LODS, "LODS", 1222938808); add(&REEL_COUNT, "REEL_COUNT", 2369747542); add(&reels, "reels", 154282128); add(&lastReel, "lastReel", 1974528893); diff --git a/Source/Scripts/GameShellSq.prm b/Source/Scripts/GameShellSq.prm index d2aa60eb..bdefa1ae 100644 --- a/Source/Scripts/GameShellSq.prm +++ b/Source/Scripts/GameShellSq.prm @@ -667,7 +667,7 @@ _V2i RESOLUTIONS[int RESOLUTION_COUNT] = { {x = 1600; y = 1200;} }; -int LODS[int LOD_COUNT] = {50,100,10000}; +int LODS[int LOD_COUNT] = {50,100,200,300}; struct Reel { string name = ""; diff --git a/Source/UserInterface/GraphicsOptions.cpp b/Source/UserInterface/GraphicsOptions.cpp index 4b954863..6d7db5c1 100644 --- a/Source/UserInterface/GraphicsOptions.cpp +++ b/Source/UserInterface/GraphicsOptions.cpp @@ -27,14 +27,12 @@ GraphOptionsManager* GraphOptionsManager::instance = 0; void CustomGraphOptions::load(const char* sectionName, const char* iniFileName) { IniManager iniManager(iniFileName); - landscapeDetails = iniManager.getInt(sectionName, "MapLevelLOD"); - if (landscapeDetails <= LODS[0]) { - landscapeDetails = 0; - } else if (landscapeDetails > LODS[0] && landscapeDetails <= LODS[1]) { - landscapeDetails = 1; - } else { - landscapeDetails = 2; - } + int maxLevelLOD = iniManager.getInt(sectionName, "MapLevelLOD"); + for (landscapeDetails = 0; landscapeDetails < LOD_COUNT; ++landscapeDetails) { + if (maxLevelLOD <= LODS[landscapeDetails]) { + break; + } + } mapReflections = iniManager.getInt(sectionName, "MapReflection"); objReflections = iniManager.getInt(sectionName,"ObjectReflection"); diff --git a/Source/UserInterface/OptionsMenu.cpp b/Source/UserInterface/OptionsMenu.cpp index fd199c6a..40815d9c 100644 --- a/Source/UserInterface/OptionsMenu.cpp +++ b/Source/UserInterface/OptionsMenu.cpp @@ -257,8 +257,10 @@ void onLODCombo(CShellWindow* pWnd, InterfaceEventCode code, int param) { if (param != -1) { pCombo->Array.push_back( getItemTextFromBase("Low").c_str() ); pCombo->Array.push_back( getItemTextFromBase("Medium").c_str() ); - pCombo->Array.push_back( getItemTextFromBase("High").c_str() ); - pCombo->size = 3; + pCombo->Array.push_back( getItemTextFromBase("High").c_str() ); + pCombo->Array.push_back( getItemTextFromBase("Extreme").c_str() ); + pCombo->size = LOD_COUNT; + xassert(pCombo->Array.size() == pCombo->size); } pCombo->pos = GraphOptionsManager::getInstance().getGraphicsOptions().customOptions.landscapeDetails; } else if ( code == EVENT_UNPRESSED || code == EVENT_RUNPRESSED ) {