Merge pull request #1228 from akortunov/master

Options to show hidden weapon parameters
pull/198/head
scrawl 8 years ago committed by GitHub
commit f63b1e81cd

@ -1,6 +1,7 @@
#include "weapon.hpp" #include "weapon.hpp"
#include <components/esm/loadweap.hpp> #include <components/esm/loadweap.hpp>
#include <components/settings/settings.hpp>
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp" #include "../mwbase/world.hpp"
@ -261,8 +262,8 @@ namespace MWClass
std::string text; std::string text;
// weapon type & damage. arrows / bolts don't have his info. // weapon type & damage
if (ref->mBase->mData.mType < 12) if ((ref->mBase->mData.mType < 12 || Settings::Manager::getBool("show projectile damage", "Game")) && ref->mBase->mData.mType < 14)
{ {
text += "\n#{sType} "; text += "\n#{sType} ";
@ -279,6 +280,8 @@ namespace MWClass
mapping[ESM::Weapon::MarksmanBow] = std::make_pair("sSkillMarksman", ""); mapping[ESM::Weapon::MarksmanBow] = std::make_pair("sSkillMarksman", "");
mapping[ESM::Weapon::MarksmanCrossbow] = std::make_pair("sSkillMarksman", ""); mapping[ESM::Weapon::MarksmanCrossbow] = std::make_pair("sSkillMarksman", "");
mapping[ESM::Weapon::MarksmanThrown] = std::make_pair("sSkillMarksman", ""); mapping[ESM::Weapon::MarksmanThrown] = std::make_pair("sSkillMarksman", "");
mapping[ESM::Weapon::Arrow] = std::make_pair("sSkillMarksman", "");
mapping[ESM::Weapon::Bolt] = std::make_pair("sSkillMarksman", "");
std::string type = mapping[ref->mBase->mData.mType].first; std::string type = mapping[ref->mBase->mData.mType].first;
std::string oneOrTwoHanded = mapping[ref->mBase->mData.mType].second; std::string oneOrTwoHanded = mapping[ref->mBase->mData.mType].second;
@ -318,6 +321,14 @@ namespace MWClass
+ MWGui::ToolTips::toString(ref->mBase->mData.mHealth); + MWGui::ToolTips::toString(ref->mBase->mData.mHealth);
} }
// add reach and attack speed for melee weapon
if (ref->mBase->mData.mType < 9 && Settings::Manager::getBool("show melee info", "Game"))
{
text += MWGui::ToolTips::getPercentString(ref->mBase->mData.mReach, "#{sRange}");
text += MWGui::ToolTips::getPercentString(ref->mBase->mData.mSpeed, "#{sAttributeSpeed}");
}
text += MWGui::ToolTips::getWeightString(ref->mBase->mData.mWeight, "#{sWeight}"); text += MWGui::ToolTips::getWeightString(ref->mBase->mData.mWeight, "#{sWeight}");
text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}"); text += MWGui::ToolTips::getValueString(ref->mBase->mData.mValue, "#{sValue}");

@ -594,6 +594,14 @@ namespace MWGui
return "\n" + prefix + ": " + toString(weight); return "\n" + prefix + ": " + toString(weight);
} }
std::string ToolTips::getPercentString(const float value, const std::string& prefix)
{
if (value == 0)
return "";
else
return "\n" + prefix + ": " + toString(value*100) +"%";
}
std::string ToolTips::getValueString(const int value, const std::string& prefix) std::string ToolTips::getValueString(const int value, const std::string& prefix)
{ {
if (value == 0) if (value == 0)

@ -63,6 +63,7 @@ namespace MWGui
///< set the screen-space position of the tooltip for focused object ///< set the screen-space position of the tooltip for focused object
static std::string getWeightString(const float weight, const std::string& prefix); static std::string getWeightString(const float weight, const std::string& prefix);
static std::string getPercentString(const float value, const std::string& prefix);
static std::string getValueString(const int value, const std::string& prefix); static std::string getValueString(const int value, const std::string& prefix);
///< @return "prefix: value" or "" if value is 0 ///< @return "prefix: value" or "" if value is 0

@ -12,6 +12,28 @@ Enable visual clues for items owned by NPCs when the crosshair is on the object.
The default value is 0 (no clues). This setting can only be configured by editing the settings configuration file. The default value is 0 (no clues). This setting can only be configured by editing the settings configuration file.
show projectile damage
----------------------
:Type: boolean
:Range: True/False
:Default: False
If this setting is true, damage bonus of arrows and bolts will be showed on item tooltip.
The default value is false. This setting can only be configured by editing the settings configuration file.
show melee info
---------------
:Type: boolean
:Range: True/False
:Default: False
If this setting is true, melee weapons reach and speed will be showed on item tooltip.
The default value is false. This setting can only be configured by editing the settings configuration file.
best attack best attack
----------- -----------

@ -146,6 +146,12 @@ crosshair = true
# no color, 1 is tool tip only, 2 is crosshair only, and 3 is both). # no color, 1 is tool tip only, 2 is crosshair only, and 3 is both).
show owned = 0 show owned = 0
# Show damage bonus of arrow and bolts.
show projectile damage = false
# Show additional melee weapon info: reach and attack speed
show melee info = false
# Always use the best mode of attack: e.g. chop, slash or thrust. # Always use the best mode of attack: e.g. chop, slash or thrust.
best attack = false best attack = false

Loading…
Cancel
Save