1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-06 00:55:50 +00:00

Add option to restore the previous ammo behavior

This commit is contained in:
Capostrophic 2019-02-22 17:18:23 +03:00
parent b738cc0383
commit 4138e29ca4
5 changed files with 29 additions and 1 deletions

View File

@ -80,6 +80,7 @@ bool Launcher::AdvancedPage::loadSettings()
int unarmedFactorsStrengthIndex = mEngineSettings.getInt("strength influences hand to hand", "Game");
if (unarmedFactorsStrengthIndex >= 0 && unarmedFactorsStrengthIndex <= 2)
unarmedFactorsStrengthComboBox->setCurrentIndex(unarmedFactorsStrengthIndex);
loadSettingBool(requireAppropriateAmmunitionCheckBox, "only appropriate ammunition bypasses resistance", "Game");
// Input Settings
loadSettingBool(allowThirdPersonZoomCheckBox, "allow third person zoom", "Input");
@ -139,6 +140,7 @@ void Launcher::AdvancedPage::saveSettings()
int unarmedFactorsStrengthIndex = unarmedFactorsStrengthComboBox->currentIndex();
if (unarmedFactorsStrengthIndex != mEngineSettings.getInt("strength influences hand to hand", "Game"))
mEngineSettings.setInt("strength influences hand to hand", "Game", unarmedFactorsStrengthIndex);
saveSettingBool(requireAppropriateAmmunitionCheckBox, "only appropriate ammunition bypasses resistance", "Game");
// Input Settings
saveSettingBool(allowThirdPersonZoomCheckBox, "allow third person zoom", "Input");

View File

@ -227,7 +227,7 @@ namespace MWMechanics
damage += attack[0] + ((attack[1] - attack[0]) * attackStrength);
adjustWeaponDamage(damage, weapon, attacker);
if (weapon == projectile || isNormalWeapon(weapon)) // NB: both the weapon and the projectile need to be normal
if (weapon == projectile || Settings::Manager::getBool("only appropriate ammunition bypasses resistance", "Game") || isNormalWeapon(weapon))
resistNormalWeapon(victim, attacker, projectile, damage);
applyWerewolfDamageMult(victim, projectile, damage);

View File

@ -211,3 +211,16 @@ disposition change of merchants caused by trading will be permanent and won't be
This imitates the option that Morrowind Code Patch offers.
This setting can be toggled in Advanced tab of the launcher.
only appropriate ammunition bypasses resistance
-----------------------------------------------
:Type: boolean
:Range: True/False
:Default: False
If this setting is true, you will have to use the appropriate ammunition to bypass normal weapon resistance (or weakness).
An enchanted bow with chitin arrows will no longer be enough for the purpose, while a steel longbow with glass arrows will still work.
This was previously the default engine behavior that diverged from Morrowind design.
This setting can be toggled in Advanced tab of the launcher.

View File

@ -242,6 +242,9 @@ strength influences hand to hand = 0
# Render holstered weapons (with quivers and scabbards), requires modded assets
weapon sheathing = false
# Allow non-standard ammunition solely to bypass normal weapon resistance or weakness
only appropriate ammunition bypasses resistance = false
[General]
# Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16).

View File

@ -96,6 +96,16 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="requireAppropriateAmmunitionCheckBox">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Allow non-standard ammunition solely to bypass normal weapon resistance or weakness.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Only appropriate ammunition bypasses normal weapon resistance</string>
</property>
</widget>
</item>
<item alignment="Qt::AlignLeft">
<widget class="QWidget" name="unarmedFactorsStrengthGroup" native="true">
<property name="toolTip">