Add new config options

This commit is contained in:
Christian Semmler 2025-06-09 16:31:03 -07:00
parent 0a1516fbd9
commit 1d0bc7be39
4 changed files with 15 additions and 4 deletions

View File

@ -126,6 +126,8 @@ IsleApp::IsleApp()
LegoOmni::CreateInstance(); LegoOmni::CreateInstance();
m_iniPath = NULL; m_iniPath = NULL;
m_maxLod = RealtimeView::GetUserMaxLOD();
m_maxAllowedExtras = m_islandQuality <= 1 ? 10 : 20;
} }
// FUNCTION: ISLE 0x4011a0 // FUNCTION: ISLE 0x4011a0
@ -574,7 +576,8 @@ MxResult IsleApp::SetupWindow()
LegoWorldPresenter::configureLegoWorldPresenter(m_islandQuality); LegoWorldPresenter::configureLegoWorldPresenter(m_islandQuality);
LegoBuildingManager::configureLegoBuildingManager(m_islandQuality); LegoBuildingManager::configureLegoBuildingManager(m_islandQuality);
LegoROI::configureLegoROI(iVar10); LegoROI::configureLegoROI(iVar10);
LegoAnimationManager::configureLegoAnimationManager(m_islandQuality); LegoAnimationManager::configureLegoAnimationManager(m_maxAllowedExtras);
RealtimeView::SetUserMaxLOD(m_maxLod);
if (LegoOmni::GetInstance()) { if (LegoOmni::GetInstance()) {
if (LegoOmni::GetInstance()->GetInputManager()) { if (LegoOmni::GetInstance()->GetInputManager()) {
LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick); LegoOmni::GetInstance()->GetInputManager()->SetUseJoystick(m_useJoystick);
@ -664,6 +667,8 @@ bool IsleApp::LoadConfig()
iniparser_set(dict, "isle:Island Quality", "1"); iniparser_set(dict, "isle:Island Quality", "1");
iniparser_set(dict, "isle:Island Texture", "1"); iniparser_set(dict, "isle:Island Texture", "1");
iniparser_set(dict, "isle:Max LOD", "3.6");
iniparser_set(dict, "isle:Max Allowed Extras", "10");
iniparser_dump_ini(dict, iniFP); iniparser_dump_ini(dict, iniFP);
SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "New config written at '%s'", iniConfig); SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, "New config written at '%s'", iniConfig);
@ -710,6 +715,8 @@ bool IsleApp::LoadConfig()
m_islandQuality = iniparser_getint(dict, "isle:Island Quality", 1); m_islandQuality = iniparser_getint(dict, "isle:Island Quality", 1);
m_islandTexture = iniparser_getint(dict, "isle:Island Texture", 1); m_islandTexture = iniparser_getint(dict, "isle:Island Texture", 1);
m_maxLod = iniparser_getdouble(dict, "isle:Max LOD", 3.6);
m_maxAllowedExtras = iniparser_getint(dict, "isle:Max Allowed Extras", 10);
const char* deviceId = iniparser_getstring(dict, "isle:3D Device ID", NULL); const char* deviceId = iniparser_getstring(dict, "isle:3D Device ID", NULL);
if (deviceId != NULL) { if (deviceId != NULL) {

View File

@ -85,6 +85,8 @@ class IsleApp {
char* m_mediaPath; char* m_mediaPath;
char* m_iniPath; char* m_iniPath;
MxFloat m_maxLod;
MxU32 m_maxAllowedExtras;
}; };
extern IsleApp* g_isle; extern IsleApp* g_isle;

View File

@ -503,7 +503,7 @@ void LegoAnimationManager::Init()
m_unk0x1a = FALSE; m_unk0x1a = FALSE;
m_tranInfoList = NULL; m_tranInfoList = NULL;
m_tranInfoList2 = NULL; m_tranInfoList2 = NULL;
m_maxAllowedExtras = g_legoAnimationManagerConfig <= 1 ? 10 : 20; m_maxAllowedExtras = g_legoAnimationManagerConfig;
MxS32 i; MxS32 i;
for (i = 0; i < (MxS32) sizeOfArray(m_unk0x28); i++) { for (i = 0; i < (MxS32) sizeOfArray(m_unk0x28); i++) {

View File

@ -1,6 +1,8 @@
#ifndef REALTIMEVIEW_H #ifndef REALTIMEVIEW_H
#define REALTIMEVIEW_H #define REALTIMEVIEW_H
#include "lego1_export.h"
extern float g_userMaxLodPower; extern float g_userMaxLodPower;
class RealtimeView { class RealtimeView {
@ -9,10 +11,10 @@ class RealtimeView {
~RealtimeView(); ~RealtimeView();
static float GetPartsThreshold(); static float GetPartsThreshold();
static float GetUserMaxLOD(); LEGO1_EXPORT static float GetUserMaxLOD();
static void SetPartsThreshold(float); static void SetPartsThreshold(float);
static void UpdateMaxLOD(); static void UpdateMaxLOD();
static void SetUserMaxLOD(float); LEGO1_EXPORT static void SetUserMaxLOD(float);
static float GetUserMaxLodPower() { return g_userMaxLodPower; } static float GetUserMaxLodPower() { return g_userMaxLodPower; }
}; };