From 78e79d577535098c0be8747257ab7a7aabf28b5c Mon Sep 17 00:00:00 2001 From: declan-millar Date: Mon, 21 May 2018 13:33:42 +0100 Subject: [PATCH] Add advanced option to Rebalance soulgem values to the launcher --- apps/launcher/advancedpage.cpp | 2 ++ apps/openmw/mwclass/misc.cpp | 6 +++--- files/settings-default.cfg | 3 +++ files/ui/advancedpage.ui | 10 ++++++++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/launcher/advancedpage.cpp b/apps/launcher/advancedpage.cpp index 9b6e5fa8c..dcf376362 100644 --- a/apps/launcher/advancedpage.cpp +++ b/apps/launcher/advancedpage.cpp @@ -23,6 +23,7 @@ bool Launcher::AdvancedPage::loadSettings() loadSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game"); loadSettingBool(showMeleeInfoCheckBox, "show melee info", "Game"); loadSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game"); + loadSettingBool(rebalanceSoulgemValuesCheckBox, "rebalance soulgem values", "Game"); // Expected values are (0, 1, 2, 3) int showOwnedIndex = mEngineSettings.getInt("show owned", "Game"); @@ -61,6 +62,7 @@ void Launcher::AdvancedPage::saveSettings() saveSettingBool(showEnchantChanceCheckBox, "show enchant chance", "Game"); saveSettingBool(showMeleeInfoCheckBox, "show melee info", "Game"); saveSettingBool(showProjectileDamageCheckBox, "show projectile damage", "Game"); + saveSettingBool(rebalanceSoulgemValuesCheckBox, "rebalance soulgem values", "Game"); int showOwnedCurrentIndex = showOwnedComboBox->currentIndex(); if (showOwnedCurrentIndex != mEngineSettings.getInt("show owned", "Game")) diff --git a/apps/openmw/mwclass/misc.cpp b/apps/openmw/mwclass/misc.cpp index 4b1a8844d..d2f5d35ba 100644 --- a/apps/openmw/mwclass/misc.cpp +++ b/apps/openmw/mwclass/misc.cpp @@ -89,13 +89,13 @@ namespace MWClass // use soulgem value rebalance formula from morrowind code patch int soul = creature->mData.mSoul; - float soul_value = 0.0001 * pow(soul, 3) + 2 * soul; + float soulValue = 0.0001 * pow(soul, 3) + 2 * soul; // for Azura's star add the unfilled value if (Misc::StringUtils::ciEqual(ptr.getCellRef().getRefId(), "Misc_SoulGem_Azura")) - value += soul_value; + value += soulValue; else - value = soul_value; + value = soulValue; } } diff --git a/files/settings-default.cfg b/files/settings-default.cfg index 87443ff1a..a2524ff17 100644 --- a/files/settings-default.cfg +++ b/files/settings-default.cfg @@ -216,6 +216,9 @@ followers attack on sight = false # Can loot non-fighting actors during death animation can loot during death animation = true +# Makes the value of filled soulgems dependent only on soul magnitude (with formula from the Morrowind Code Patch) +rebalance soulgem values = false + [General] # Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16). diff --git a/files/ui/advancedpage.ui b/files/ui/advancedpage.ui index 6832b86df..28d0f0543 100644 --- a/files/ui/advancedpage.ui +++ b/files/ui/advancedpage.ui @@ -109,6 +109,16 @@ + + + + <html><head/><body><p>If this setting is true, the value of filled soulgems is dependent only on soul magnitude.</p><p>The default value is false.</p></body></html> + + + Rebalance soulgem values + + +