@@ -77,6 +77,7 @@ static const char *const StaticGameLODNames[]=
7777 " Low" ,
7878 " Medium" ,
7979 " High" ,
80+ " VeryHigh" ,
8081 " Custom"
8182};
8283static_assert (ARRAY_SIZE(StaticGameLODNames) == STATIC_GAME_LOD_COUNT, " Incorrect array size" );
@@ -233,13 +234,44 @@ GameLODManager::GameLODManager(void)
233234
234235 for (Int i=0 ; i<STATIC_GAME_LOD_CUSTOM; i++)
235236 m_numLevelPresets[i]=0 ;
237+
238+ initStaticLODLevels ();
236239};
237240
238241GameLODManager::~GameLODManager ()
239242{
240243
241244}
242245
246+ void GameLODManager::initStaticLODLevels ()
247+ {
248+ // TheSuperHackers @info Initialize new system specs in this function when we cannot rely on new edits to GameLOD.ini.
249+
250+ StaticGameLODInfo& veryhigh = m_staticGameLODInfo[STATIC_GAME_LOD_VERY_HIGH];
251+ veryhigh.m_minFPS = 55 ;
252+ veryhigh.m_minProcessorFPS = 59 ;
253+ veryhigh.m_sampleCount2D = 6 ;
254+ veryhigh.m_sampleCount3D = 24 ;
255+ veryhigh.m_streamCount = 2 ;
256+ veryhigh.m_maxParticleCount = 5000 ;
257+ veryhigh.m_useShadowVolumes = TRUE ;
258+ veryhigh.m_useShadowDecals = TRUE ;
259+ veryhigh.m_useCloudMap = TRUE ;
260+ veryhigh.m_useLightMap = TRUE ;
261+ veryhigh.m_showSoftWaterEdge = TRUE ;
262+ veryhigh.m_maxTankTrackEdges = 100 ;
263+ veryhigh.m_maxTankTrackOpaqueEdges = 25 ;
264+ veryhigh.m_maxTankTrackFadeDelay = 60000 ;
265+ veryhigh.m_useBuildupScaffolds = TRUE ;
266+ veryhigh.m_useTreeSway = TRUE ;
267+ veryhigh.m_useEmissiveNightMaterials = TRUE ;
268+ veryhigh.m_useHeatEffects = TRUE ;
269+ veryhigh.m_textureReduction = 0 ;
270+ veryhigh.m_useFpsLimit = TRUE ;
271+ veryhigh.m_enableDynamicLOD = TRUE ;
272+ veryhigh.m_useTrees = TRUE ;
273+ }
274+
243275BenchProfile *GameLODManager::newBenchProfile (void )
244276{
245277 if (m_numBenchProfiles < MAX_BENCH_PROFILES)
@@ -322,7 +354,7 @@ void GameLODManager::init(void)
322354 // Check if we're within 5% of the performance of this cpu profile.
323355 if (m_intBenchIndex/prof->m_intBenchIndex >= PROFILE_ERROR_LIMIT && m_floatBenchIndex/prof->m_floatBenchIndex >= PROFILE_ERROR_LIMIT && m_memBenchIndex/prof->m_memBenchIndex >= PROFILE_ERROR_LIMIT)
324356 {
325- for (Int i=STATIC_GAME_LOD_HIGH ; i >= STATIC_GAME_LOD_LOW ; i--)
357+ for (Int i=STATIC_GAME_LOD_LAST ; i >= STATIC_GAME_LOD_FIRST ; i--)
326358 {
327359 LODPresetInfo *preset=&m_lodPresets[i][0 ]; // pointer to first preset at this LOD level.
328360 for (Int j=0 ; j<m_numLevelPresets[i]; j++)
@@ -460,7 +492,7 @@ StaticGameLODLevel GameLODManager::getRecommendedStaticLODLevel(void)
460492
461493 Int numMBRam=m_numRAM/(1024 *1024 );
462494
463- for (Int i=STATIC_GAME_LOD_HIGH ; i >= STATIC_GAME_LOD_LOW ; i--)
495+ for (Int i=STATIC_GAME_LOD_LAST ; i >= STATIC_GAME_LOD_FIRST ; i--)
464496 {
465497 LODPresetInfo *preset=&m_lodPresets[i][0 ]; // pointer to first preset at this LOD level.
466498 for (Int j=0 ; j<m_numLevelPresets[i]; j++)
0 commit comments