Do not display negative stat values

Display zero instead of negative values.
Also remove useless for loops and some unused attributes.
This commit is contained in:
Emanuel Guevel 2013-12-10 00:41:36 +01:00
parent fc8bd1aacb
commit 357ecd92b2
4 changed files with 45 additions and 90 deletions

View file

@ -174,37 +174,31 @@ namespace MWGui
void HUD::setValue(const std::string& id, const MWMechanics::DynamicStat<float>& value) void HUD::setValue(const std::string& id, const MWMechanics::DynamicStat<float>& value)
{ {
static const char *ids[] = int current = std::max(0, static_cast<int>(value.getCurrent()));
{ int modified = static_cast<int>(value.getModified());
"HBar", "MBar", "FBar", 0
};
for (int i=0; ids[i]; ++i)
if (ids[i]==id)
{
MyGUI::Widget* w; MyGUI::Widget* w;
std::string valStr = boost::lexical_cast<std::string>(value.getCurrent()) + "/" + boost::lexical_cast<std::string>(value.getModified()); std::string valStr = boost::lexical_cast<std::string>(current) + "/" + boost::lexical_cast<std::string>(modified);
switch (i) if (id == "HBar")
{ {
case 0: mHealth->setProgressRange(modified);
mHealth->setProgressRange (value.getModified()); mHealth->setProgressPosition(current);
mHealth->setProgressPosition (value.getCurrent());
getWidget(w, "HealthFrame"); getWidget(w, "HealthFrame");
w->setUserString("Caption_HealthDescription", "#{sHealthDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sHealthDesc}\n" + valStr);
break; }
case 1: else if (id == "MBar")
mMagicka->setProgressRange (value.getModified()); {
mMagicka->setProgressPosition (value.getCurrent()); mMagicka->setProgressRange (modified);
mMagicka->setProgressPosition (current);
getWidget(w, "MagickaFrame"); getWidget(w, "MagickaFrame");
w->setUserString("Caption_HealthDescription", "#{sIntDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sIntDesc}\n" + valStr);
break; }
case 2: else if (id == "FBar")
mStamina->setProgressRange (value.getModified()); {
mStamina->setProgressPosition (value.getCurrent()); mStamina->setProgressRange (modified);
mStamina->setProgressPosition (current);
getWidget(w, "FatigueFrame"); getWidget(w, "FatigueFrame");
w->setUserString("Caption_HealthDescription", "#{sFatDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sFatDesc}\n" + valStr);
break;
}
} }
} }

View file

@ -134,40 +134,30 @@ namespace MWGui
void StatsWindow::setValue (const std::string& id, const MWMechanics::DynamicStat<float>& value) void StatsWindow::setValue (const std::string& id, const MWMechanics::DynamicStat<float>& value)
{ {
static const char *ids[] = int current = std::max(0, static_cast<int>(value.getCurrent()));
{ int modified = static_cast<int>(value.getModified());
"HBar", "MBar", "FBar",
0
};
for (int i=0; ids[i]; ++i) setBar (id, id + "T", current, modified);
{
if (ids[i]==id)
{
std::string id (ids[i]);
setBar (id, id + "T", static_cast<int>(value.getCurrent()), static_cast<int>(value.getModified()));
// health, magicka, fatigue tooltip // health, magicka, fatigue tooltip
MyGUI::Widget* w; MyGUI::Widget* w;
std::string valStr = boost::lexical_cast<std::string>(int(value.getCurrent())) + "/" + boost::lexical_cast<std::string>(int(value.getModified())); std::string valStr = boost::lexical_cast<std::string>(current) + "/" + boost::lexical_cast<std::string>(modified);
if (i==0) if (id == "HBar")
{ {
getWidget(w, "Health"); getWidget(w, "Health");
w->setUserString("Caption_HealthDescription", "#{sHealthDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sHealthDesc}\n" + valStr);
} }
else if (i==1) else if (id == "MBar")
{ {
getWidget(w, "Magicka"); getWidget(w, "Magicka");
w->setUserString("Caption_HealthDescription", "#{sIntDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sIntDesc}\n" + valStr);
} }
else if (i==2) else if (id == "FBar")
{ {
getWidget(w, "Fatigue"); getWidget(w, "Fatigue");
w->setUserString("Caption_HealthDescription", "#{sFatDesc}\n" + valStr); w->setUserString("Caption_HealthDescription", "#{sFatDesc}\n" + valStr);
} }
} }
}
}
void StatsWindow::setValue (const std::string& id, const std::string& value) void StatsWindow::setValue (const std::string& id, const std::string& value)
{ {

View file

@ -112,9 +112,6 @@ namespace MWGui
, mPlayerMinorSkills() , mPlayerMinorSkills()
, mPlayerMajorSkills() , mPlayerMajorSkills()
, mPlayerSkillValues() , mPlayerSkillValues()
, mPlayerHealth()
, mPlayerMagicka()
, mPlayerFatigue()
, mGui(NULL) , mGui(NULL)
, mGuiModes() , mGuiModes()
, mCursorManager(NULL) , mCursorManager(NULL)
@ -590,31 +587,7 @@ namespace MWGui
mStatsWindow->setValue (id, value); mStatsWindow->setValue (id, value);
mHud->setValue (id, value); mHud->setValue (id, value);
mCharGen->setValue(id, value); mCharGen->setValue(id, value);
if (id == "HBar")
{
mPlayerHealth = value;
} }
else if (id == "MBar")
{
mPlayerMagicka = value;
}
else if (id == "FBar")
{
mPlayerFatigue = value;
}
}
#if 0
MWMechanics::DynamicStat<int> WindowManager::getValue(const std::string& id)
{
if(id == "HBar")
return mPlayerHealth;
else if (id == "MBar")
return mPlayerMagicka;
else if (id == "FBar")
return mPlayerFatigue;
}
#endif
void WindowManager::setValue (const std::string& id, const std::string& value) void WindowManager::setValue (const std::string& id, const std::string& value)
{ {

View file

@ -346,8 +346,6 @@ namespace MWGui
std::map<int, MWMechanics::Stat<int> > mPlayerAttributes; std::map<int, MWMechanics::Stat<int> > mPlayerAttributes;
SkillList mPlayerMajorSkills, mPlayerMinorSkills; SkillList mPlayerMajorSkills, mPlayerMinorSkills;
std::map<int, MWMechanics::Stat<float> > mPlayerSkillValues; std::map<int, MWMechanics::Stat<float> > mPlayerSkillValues;
MWMechanics::DynamicStat<float> mPlayerHealth, mPlayerMagicka, mPlayerFatigue;
MyGUI::Gui *mGui; // Gui MyGUI::Gui *mGui; // Gui
std::vector<GuiMode> mGuiModes; std::vector<GuiMode> mGuiModes;