diff --git a/CONFIG/AboutDlg.cpp b/CONFIG/AboutDlg.cpp index b2c14eca..a853ee52 100644 --- a/CONFIG/AboutDlg.cpp +++ b/CONFIG/AboutDlg.cpp @@ -14,4 +14,5 @@ CAboutDialog::CAboutDialog() : QDialog() { m_ui = new Ui::AboutDialog; m_ui->setupUi(this); + layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/CONFIG/MainDlg.cpp b/CONFIG/MainDlg.cpp index a535d658..f6a49b9f 100644 --- a/CONFIG/MainDlg.cpp +++ b/CONFIG/MainDlg.cpp @@ -17,10 +17,6 @@ DECOMP_SIZE_ASSERT(CDialog, 0x60) DECOMP_SIZE_ASSERT(CMainDialog, 0x70) -// FIXME: disable dialog resizing -// FIXME: advanced mode should resize dialog, ignoring advanced controls -// FIXME: list widget should have less rows - // FUNCTION: CONFIG 0x00403d50 CMainDialog::CMainDialog(QWidget* pParent) : QDialog(pParent) { @@ -30,13 +26,12 @@ CMainDialog::CMainDialog(QWidget* pParent) : QDialog(pParent) // Populate the dialog prior to connecting all signals OnInitDialog(); - connect(m_ui->colorPalette16bitRadioButton, &QRadioButton::toggled, this, &CMainDialog::OnRadiobuttonPalette16bit); - connect(m_ui->colorPalette256RadioButton, &QRadioButton::toggled, this, &CMainDialog::OnRadiobuttonPalette256); + connect(m_ui->modelQualityLowRadioButton, &QRadioButton::toggled, this, &CMainDialog::OnRadiobuttonModelLowQuality); connect( - m_ui->modelQualityFastRadioButton, + m_ui->modelQualityMediumRadioButton, &QRadioButton::toggled, this, - &CMainDialog::OnRadiobuttonModelLowQuality + &CMainDialog::OnRadiobuttonModelMediumQuality ); connect( m_ui->modelQualityHighRadioButton, @@ -44,6 +39,7 @@ CMainDialog::CMainDialog(QWidget* pParent) : QDialog(pParent) this, &CMainDialog::OnRadiobuttonModelHighQuality ); + connect( m_ui->textureQualityFastRadioButton, &QRadioButton::toggled, @@ -58,18 +54,29 @@ CMainDialog::CMainDialog(QWidget* pParent) : QDialog(pParent) ); connect(m_ui->devicesList, &QListWidget::currentRowChanged, this, &CMainDialog::OnList3DevicesSelectionChanged); connect(m_ui->musicCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckboxMusic); - connect(m_ui->videomemoryCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckbox3DVideoMemory); - connect(m_ui->flipVideoMemoryPagesCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckboxFlipVideoMemPages); connect(m_ui->sound3DCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckbox3DSound); connect(m_ui->joystickCheckBox, &QCheckBox::toggled, this, &CMainDialog::OnCheckboxJoystick); connect(m_ui->okButton, &QPushButton::clicked, this, &CMainDialog::accept); connect(m_ui->cancelButton, &QPushButton::clicked, this, &CMainDialog::reject); - connect(m_ui->advancedButton, &QPushButton::clicked, this, &CMainDialog::OnButtonAdvanced); + + connect(m_ui->diskPathOpen, &QPushButton::clicked, this, &CMainDialog::SelectDiskPathDialog); + connect(m_ui->cdPathOpen, &QPushButton::clicked, this, &CMainDialog::SelectCDPathDialog); + connect(m_ui->mediaPathOpen, &QPushButton::clicked, this, &CMainDialog::SelectMediaPathDialog); + connect(m_ui->savePathOpen, &QPushButton::clicked, this, &CMainDialog::SelectSavePathDialog); + + connect(m_ui->diskPath, &QLineEdit::textEdited, this, &CMainDialog::DiskPathEdited); + connect(m_ui->cdPath, &QLineEdit::textEdited, this, &CMainDialog::CDPathEdited); + connect(m_ui->mediaPath, &QLineEdit::textEdited, this, &CMainDialog::MediaPathEdited); + connect(m_ui->savePath, &QLineEdit::textEdited, this, &CMainDialog::SavePathEdited); + + connect(m_ui->maxLoDSlider, &QSlider::valueChanged, this, &CMainDialog::MaxLoDChanged); + connect(m_ui->maxActorsSlider, &QSlider::valueChanged, this, &CMainDialog::MaxActorsChanged); + + layout()->setSizeConstraint(QLayout::SetFixedSize); } // FUNCTION: CONFIG 0x00403e80 bool CMainDialog::OnInitDialog() { - SwitchToAdvanced(false); LegoDeviceEnumerate* enumerator = currentConfigApp->m_device_enumerator; enumerator->FUN_1009d210(); m_modified = currentConfigApp->ReadRegisterSettings(); @@ -99,6 +106,9 @@ bool CMainDialog::OnInitDialog() driver_i += 1; } m_ui->devicesList->setCurrentRow(selected); + + m_ui->maxLoDSlider->setValue((int) currentConfigApp->m_max_lod * 10); + m_ui->maxActorsSlider->setValue(currentConfigApp->m_max_actors); UpdateInterface(); return true; } @@ -123,8 +133,6 @@ void CMainDialog::OnList3DevicesSelectionChanged(int selected) if (currentConfigApp->GetHardwareDeviceColorModel() == D3DCOLOR_NONE) { currentConfigApp->m_3d_video_ram = FALSE; currentConfigApp->m_flip_surfaces = FALSE; - m_ui->videomemoryCheckBox->setChecked(currentConfigApp->m_3d_video_ram); - m_ui->flipVideoMemoryPagesCheckBox->setChecked(currentConfigApp->m_flip_surfaces); } m_modified = true; UpdateInterface(); @@ -148,32 +156,18 @@ void CMainDialog::accept() void CMainDialog::UpdateInterface() { currentConfigApp->ValidateSettings(); - m_ui->videomemoryCheckBox->setEnabled( - !currentConfigApp->m_flip_surfaces && currentConfigApp->GetHardwareDeviceColorModel() == D3DCOLOR_NONE - ); - m_ui->flipVideoMemoryPagesCheckBox->setChecked(currentConfigApp->m_flip_surfaces); - m_ui->videomemoryCheckBox->setChecked(currentConfigApp->m_3d_video_ram); bool full_screen = currentConfigApp->m_full_screen; currentConfigApp->AdjustDisplayBitDepthBasedOnRenderStatus(); - if (full_screen) { - if (currentConfigApp->m_display_bit_depth == 8) { - m_ui->colorPalette256RadioButton->setChecked(true); - } - else { - m_ui->colorPalette16bitRadioButton->setChecked(true); - } - } - else { - m_ui->colorPalette256RadioButton->setChecked(false); - m_ui->colorPalette256RadioButton->setChecked(false); + if (!full_screen) { currentConfigApp->m_display_bit_depth = 0; } - m_ui->colorPalette256RadioButton->setEnabled(full_screen && currentConfigApp->GetConditionalDeviceRenderBitDepth()); - m_ui->colorPalette16bitRadioButton->setEnabled(full_screen && currentConfigApp->GetDeviceRenderBitStatus()); m_ui->sound3DCheckBox->setChecked(currentConfigApp->m_3d_sound); switch (currentConfigApp->m_model_quality) { + case 0: + m_ui->modelQualityLowRadioButton->setChecked(true); + break; case 1: - m_ui->modelQualityFastRadioButton->setChecked(true); + m_ui->modelQualityMediumRadioButton->setChecked(true); break; case 2: m_ui->modelQualityHighRadioButton->setChecked(true); @@ -187,6 +181,10 @@ void CMainDialog::UpdateInterface() } m_ui->joystickCheckBox->setChecked(currentConfigApp->m_use_joystick); m_ui->musicCheckBox->setChecked(currentConfigApp->m_music); + m_ui->diskPath->setText(QString::fromStdString(currentConfigApp->m_base_path)); + m_ui->cdPath->setText(QString::fromStdString(currentConfigApp->m_cd_path)); + m_ui->mediaPath->setText(QString::fromStdString(currentConfigApp->m_media_path)); + m_ui->savePath->setText(QString::fromStdString(currentConfigApp->m_save_path)); } // FUNCTION: CONFIG 0x004045e0 @@ -197,48 +195,19 @@ void CMainDialog::OnCheckbox3DSound(bool checked) UpdateInterface(); } -// FUNCTION: CONFIG 0x00404610 -void CMainDialog::OnCheckbox3DVideoMemory(bool checked) -{ - currentConfigApp->m_3d_video_ram = checked; - m_modified = true; - UpdateInterface(); -} - -// FUNCTION: CONFIG 0x00404640 -void CMainDialog::OnRadiobuttonPalette16bit(bool checked) -{ - if (checked) { - currentConfigApp->m_display_bit_depth = 16; - m_modified = true; - UpdateInterface(); - } -} - -// FUNCTION: CONFIG 0x00404670 -void CMainDialog::OnRadiobuttonPalette256(bool checked) -{ - if (checked) { - currentConfigApp->m_display_bit_depth = 8; - m_modified = true; - UpdateInterface(); - } -} - -// FUNCTION: CONFIG 0x004046a0 -void CMainDialog::OnCheckboxFlipVideoMemPages(bool checked) -{ - currentConfigApp->m_flip_surfaces = checked; - m_modified = true; - UpdateInterface(); -} - // FUNCTION: CONFIG 0x004046d0 void CMainDialog::OnRadiobuttonModelLowQuality(bool checked) { if (checked) { - // FIXME: are OnRadiobuttonModelLowQuality and OnRadiobuttonModelHighQuality triggered both? - qInfo() << "OnRadiobuttonModelLowQuality"; + currentConfigApp->m_model_quality = 0; + m_modified = true; + UpdateInterface(); + } +} + +void CMainDialog::OnRadiobuttonModelMediumQuality(bool checked) +{ + if (checked) { currentConfigApp->m_model_quality = 1; m_modified = true; UpdateInterface(); @@ -249,7 +218,6 @@ void CMainDialog::OnRadiobuttonModelLowQuality(bool checked) void CMainDialog::OnRadiobuttonModelHighQuality(bool checked) { if (checked) { - qInfo() << "OnRadiobuttonModelHighQuality"; currentConfigApp->m_model_quality = 2; m_modified = true; UpdateInterface(); @@ -260,8 +228,6 @@ void CMainDialog::OnRadiobuttonModelHighQuality(bool checked) void CMainDialog::OnRadiobuttonTextureLowQuality(bool checked) { if (checked) { - // FIXME: are OnRadiobuttonTextureLowQuality and OnRadiobuttonTextureHighQuality triggered both? - qInfo() << "OnRadiobuttonTextureLowQuality"; currentConfigApp->m_texture_quality = 0; m_modified = true; UpdateInterface(); @@ -272,8 +238,6 @@ void CMainDialog::OnRadiobuttonTextureLowQuality(bool checked) void CMainDialog::OnRadiobuttonTextureHighQuality(bool checked) { if (checked) { - // FIXME: are OnRadiobuttonTextureLowQuality and OnRadiobuttonTextureHighQuality triggered both? - qInfo() << "OnRadiobuttonTextureHighQuality"; currentConfigApp->m_texture_quality = 1; m_modified = true; UpdateInterface(); @@ -288,20 +252,6 @@ void CMainDialog::OnCheckboxJoystick(bool checked) UpdateInterface(); } -// FUNCTION: CONFIG 0x004047c0 -void CMainDialog::OnButtonAdvanced() -{ - SwitchToAdvanced(!m_advanced); -} - -// FUNCTION: CONFIG 0x004047d0 -void CMainDialog::SwitchToAdvanced(bool p_advanced) -{ - m_ui->advancedGroup->setVisible(p_advanced); - layout()->setSizeConstraint(QLayout::SetMinAndMaxSize); - m_advanced = p_advanced; -} - // FUNCTION: CONFIG 0x004048c0 void CMainDialog::OnCheckboxMusic(bool checked) { @@ -309,3 +259,110 @@ void CMainDialog::OnCheckboxMusic(bool checked) m_modified = true; UpdateInterface(); } + +void CMainDialog::SelectDiskPathDialog() +{ + QString disk_path = QString::fromStdString(currentConfigApp->m_base_path); + disk_path = QFileDialog::getExistingDirectory( + this, + tr("Open Directory"), + disk_path, + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks + ); + + if (disk_path.toStdString() != "") { + currentConfigApp->m_base_path = disk_path.toStdString(); + m_modified = true; + UpdateInterface(); + } +} + +void CMainDialog::SelectCDPathDialog() +{ + QString cd_path = QString::fromStdString(currentConfigApp->m_cd_path); + cd_path = QFileDialog::getExistingDirectory( + this, + tr("Open Directory"), + cd_path, + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks + ); + + if (cd_path.toStdString() != "") { + currentConfigApp->m_cd_path = cd_path.toStdString(); + m_modified = true; + UpdateInterface(); + } +} + +void CMainDialog::SelectMediaPathDialog() +{ + QString media_path = QString::fromStdString(currentConfigApp->m_media_path); + media_path = QFileDialog::getExistingDirectory( + this, + tr("Open Directory"), + media_path, + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks + ); + if (media_path.toStdString() != "") { + currentConfigApp->m_media_path = media_path.toStdString(); + m_modified = true; + UpdateInterface(); + } +} + +void CMainDialog::SelectSavePathDialog() +{ + QString save_path = QString::fromStdString(currentConfigApp->m_save_path); + save_path = QFileDialog::getExistingDirectory( + this, + tr("Open Directory"), + save_path, + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks + ); + + if (save_path.toStdString() != "") { + currentConfigApp->m_save_path = save_path.toStdString(); + m_modified = true; + UpdateInterface(); + } +} + +void CMainDialog::DiskPathEdited(const QString& text) +{ + currentConfigApp->m_base_path = text.toStdString(); + m_modified = true; + UpdateInterface(); +} + +void CMainDialog::CDPathEdited(const QString& text) +{ + currentConfigApp->m_cd_path = text.toStdString(); + m_modified = true; + UpdateInterface(); +} + +void CMainDialog::MediaPathEdited(const QString& text) +{ + currentConfigApp->m_media_path = text.toStdString(); + m_modified = true; + UpdateInterface(); +} + +void CMainDialog::SavePathEdited(const QString& text) +{ + currentConfigApp->m_save_path = text.toStdString(); + m_modified = true; + UpdateInterface(); +} + +void CMainDialog::MaxLoDChanged(int value) +{ + currentConfigApp->m_max_lod = static_cast(value) / 10.0f; + m_modified = true; +} + +void CMainDialog::MaxActorsChanged(int value) +{ + currentConfigApp->m_max_actors = value; + m_modified = true; +} diff --git a/CONFIG/MainDlg.h b/CONFIG/MainDlg.h index 21158da0..bed7dbba 100644 --- a/CONFIG/MainDlg.h +++ b/CONFIG/MainDlg.h @@ -6,6 +6,7 @@ #include "res/resource.h" #include +#include namespace Ui { @@ -22,7 +23,6 @@ public: protected: void UpdateInterface(); - void SwitchToAdvanced(bool p_advanced); private: bool m_modified = false; @@ -34,19 +34,25 @@ private: private slots: void OnList3DevicesSelectionChanged(int row); void OnCheckbox3DSound(bool checked); - void OnCheckbox3DVideoMemory(bool checked); - void OnRadiobuttonPalette16bit(bool checked); - void OnRadiobuttonPalette256(bool checked); - void OnCheckboxFlipVideoMemPages(bool checked); void OnRadiobuttonModelLowQuality(bool checked); + void OnRadiobuttonModelMediumQuality(bool checked); void OnRadiobuttonModelHighQuality(bool checked); void OnRadiobuttonTextureLowQuality(bool checked); void OnRadiobuttonTextureHighQuality(bool checked); - void OnCheckboxJoystick(bool chedked); + void OnCheckboxJoystick(bool checked); void OnCheckboxMusic(bool checked); - void OnButtonAdvanced(); void accept() override; void reject() override; + void SelectDiskPathDialog(); + void SelectCDPathDialog(); + void SelectMediaPathDialog(); + void SelectSavePathDialog(); + void DiskPathEdited(const QString& text); + void CDPathEdited(const QString& text); + void MediaPathEdited(const QString& text); + void SavePathEdited(const QString& text); + void MaxLoDChanged(int value); + void MaxActorsChanged(int value); }; // SYNTHETIC: CONFIG 0x00403de0 diff --git a/CONFIG/config.cpp b/CONFIG/config.cpp index b00bece1..6555fafd 100644 --- a/CONFIG/config.cpp +++ b/CONFIG/config.cpp @@ -63,7 +63,7 @@ bool CConfigApp::InitInstance() m_device = NULL; m_full_screen = TRUE; m_wide_view_angle = TRUE; - m_use_joystick = FALSE; + m_use_joystick = TRUE; m_music = TRUE; m_flip_surfaces = FALSE; m_3d_video_ram = FALSE; @@ -74,16 +74,22 @@ bool CConfigApp::InitInstance() m_3d_sound = FALSE; m_model_quality = 0; m_texture_quality = 1; + m_max_lod = 1.5f; + m_max_actors = 5; } else if (totalRamMiB < 20) { m_3d_sound = FALSE; m_model_quality = 1; m_texture_quality = 1; + m_max_lod = 2.5f; + m_max_actors = 10; } else { m_model_quality = 2; m_3d_sound = TRUE; m_texture_quality = 1; + m_max_lod = 3.5f; + m_max_actors = 20; } return true; } @@ -149,6 +155,8 @@ bool CConfigApp::ReadRegisterSettings() m_use_joystick = iniparser_getboolean(dict, "isle:UseJoystick", m_use_joystick); m_music = iniparser_getboolean(dict, "isle:Music", m_music); m_joystick_index = iniparser_getint(dict, "isle:JoystickIndex", m_joystick_index); + m_max_lod = iniparser_getdouble(dict, "isle:Max LOD", m_max_lod); + m_max_actors = iniparser_getint(dict, "isle:Max Allowed Extras", m_max_actors); return true; } @@ -200,7 +208,7 @@ bool CConfigApp::ValidateSettings() } } if ((m_display_bit_depth != 8 && m_display_bit_depth != 16) && (m_display_bit_depth != 0 || m_full_screen)) { - m_display_bit_depth = 8; + m_display_bit_depth = 16; is_modified = TRUE; } if (m_model_quality < 0 || m_model_quality > 2) { @@ -211,6 +219,16 @@ bool CConfigApp::ValidateSettings() m_texture_quality = 0; is_modified = TRUE; } + + if (m_max_lod < 0.0f || m_max_lod > 5.0f) { + m_max_lod = 3.5f; + is_modified = TRUE; + } + if (m_max_actors < 5 || m_max_actors > 40) { + m_max_actors = 20; + is_modified = TRUE; + } + return is_modified; } @@ -258,7 +276,7 @@ bool CConfigApp::AdjustDisplayBitDepthBasedOnRenderStatus() m_display_bit_depth = 16; return TRUE; } - m_display_bit_depth = 8; + m_display_bit_depth = 16; return TRUE; } @@ -286,7 +304,7 @@ void CConfigApp::WriteRegisterSettings() const iniparser_set(dict, "isle:mediapath", m_media_path.c_str()); iniparser_set(dict, "isle:savepath", m_save_path.c_str()); - SetIniBool(dict, "isle:Display Bit Depth", m_display_bit_depth); + SetIniInt(dict, "isle:Display Bit Depth", m_display_bit_depth); SetIniBool(dict, "isle:Flip Surfaces", m_flip_surfaces); SetIniBool(dict, "isle:Full Screen", m_full_screen); SetIniBool(dict, "isle:Wide View Angle", m_wide_view_angle); @@ -303,6 +321,9 @@ void CConfigApp::WriteRegisterSettings() const SetIniInt(dict, "isle:Island Quality", m_model_quality); SetIniInt(dict, "isle:Island Texture", m_texture_quality); + iniparser_set(dict, "isle:Max LOD", std::to_string(m_max_lod).c_str()); + SetIniInt(dict, "isle:Max Allowed Extras", m_max_actors); + #undef SetIniBool #undef SetIniInt diff --git a/CONFIG/config.h b/CONFIG/config.h index 687da4d3..276dc755 100644 --- a/CONFIG/config.h +++ b/CONFIG/config.h @@ -79,6 +79,8 @@ public: std::string m_cd_path; std::string m_media_path; std::string m_save_path; + float m_max_lod; + int m_max_actors; }; extern CConfigApp g_theApp; diff --git a/CONFIG/res/maindialog.ui b/CONFIG/res/maindialog.ui index fadc12f7..ac69f782 100644 --- a/CONFIG/res/maindialog.ui +++ b/CONFIG/res/maindialog.ui @@ -6,8 +6,8 @@ 0 0 - 549 - 563 + 575 + 650 @@ -27,7 +27,7 @@ - + 0 0 @@ -35,7 +35,13 @@ 143 - 545 + 383 + + + + + 16777215 + 16777215 @@ -45,52 +51,304 @@ :/shark.png - true + false + + + Qt::AlignCenter - - 0 - - - 0 - - - 0 - - - 0 - - + 0 - 41 + 0 - - - 0 - + 0 - - 0 - 0 - + + + + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + Open + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + Open + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + Open + + + + + + + + 0 + 0 + + + + CD Path: + + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + 0 + 0 + + + + + 55 + 16777215 + + + + Open + + + + + + + + 0 + 0 + + + + Disk Path: + + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Save Path: + + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + 0 + 0 + + + + Media Path: + + + Qt::PlainText + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + 0 + 80 + + + + + 0 + + + 0 + + + + + + 16777215 + 120 + + + + Island Model Quality + + + + + + Low + + + + + + + Medium + + + + + + + High + + + + + + + + + + + 0 + 70 + + + + Maximum Level of Detail (LOD). A higher setting will cause higher quality textures to be drawn regardless of distance. + + + Maximum LOD + + + Qt::AlignCenter + + + + + + 50 + + + 5 + + + 10 + + + 35 + + + false + + + Qt::Horizontal + + + QSlider::TicksBothSides + + + 10 + + + + + + + Island Texture Quality - + 0 @@ -114,129 +372,46 @@ - - - - Island Model Quality + + + + Maximum number of LEGO actors to exist in the world at a time. The game will gradually increase the number of actors until this maximum is reached and while performance is acceptable. - - - 0 - - - 0 - - - - - Fast - - - - - - - High - - - - - - - - - Color Palette + Maximum Actors (5..40) - - - 0 - - - 0 - + + Qt::AlignCenter + + - - - 256 Color + + + 5 - - - - - - High Color (16 bit) + + 40 - - - - - - - - - - 0 - - - 0 - - - - - Music + + 5 - - - - - - Use Joystick + + 20 - - - - - - - - - - 30 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Advanced + + 20 - - - - - - OK + + false - - true + + Qt::Horizontal - - - - - - Cancel + + QSlider::TicksBothSides + + + 5 @@ -246,32 +421,83 @@ + + + + + 0 + + + 0 + + + + + 3D Sound + + + + + + + Music + + + + + + + Use Joystick + + + + + + + + + 16777215 + 225 + + - Advanced Settings + + + + Qt::AlignCenter + + + false 6 - 0 + 6 6 - 0 + 6 - + 0 0 + + + 0 + 25 + + Direct 3D Devices @@ -285,6 +511,18 @@ true + + + 0 + 0 + + + + + 16777215 + 125 + + QAbstractItemView::NoEditTriggers @@ -296,43 +534,42 @@ + + + + + + + + 30 + + + 0 + + + 0 + + + 0 + + + 0 + - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Flip Video Memory Pages - - - - - - - Draw 3D to Video Memory - - - - - - - 3D Sound - - - - + + + OK + + + true + + + + + + + Cancel + @@ -343,6 +580,29 @@ + + diskPath + diskPathOpen + cdPath + cdPathOpen + mediaPath + mediaPathOpen + savePath + savePathOpen + textureQualityFastRadioButton + textureQualityHighRadioButton + modelQualityLowRadioButton + modelQualityMediumRadioButton + modelQualityHighRadioButton + maxLoDSlider + maxActorsSlider + sound3DCheckBox + musicCheckBox + joystickCheckBox + devicesList + okButton + cancelButton +