From f4af4cc1e21d95c6fed8245466bb589dbd7900b7 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 15 Jan 2013 12:18:28 +0300 Subject: Show better stats line in chat from status window. --- src/gui/statuswindow.cpp | 37 ++++++++++++++++++++++++++----------- src/gui/statuswindow.h | 5 +++-- src/net/eathena/generalhandler.cpp | 37 +++++++++++++++++++------------------ src/net/tmwa/generalhandler.cpp | 37 +++++++++++++++++++------------------ 4 files changed, 67 insertions(+), 49 deletions(-) (limited to 'src') diff --git a/src/gui/statuswindow.cpp b/src/gui/statuswindow.cpp index 691333703..d8974fce8 100644 --- a/src/gui/statuswindow.cpp +++ b/src/gui/statuswindow.cpp @@ -77,12 +77,17 @@ class AttrDisplay : public Container return mValue->getCaption(); } + const std::string &getShortName() const + { return mShortName; } + protected: AttrDisplay(const Widget2 *const widget, - const int id, const std::string &name); + const int id, const std::string &name, + const std::string &shortName); const int mId; const std::string mName; + const std::string mShortName; LayoutHelper *mLayout; Label *mLabel; @@ -93,7 +98,8 @@ class DerDisplay final : public AttrDisplay { public: DerDisplay(const Widget2 *const widget, - const int id, const std::string &name); + const int id, const std::string &name, + const std::string &shortName); A_DELETE_COPY(DerDisplay) @@ -105,7 +111,8 @@ class ChangeDisplay final : public AttrDisplay, gcn::ActionListener { public: ChangeDisplay(const Widget2 *const widget, - const int id, const std::string &name); + const int id, const std::string &name, + const std::string &shortName); A_DELETE_COPY(ChangeDisplay) @@ -436,6 +443,7 @@ void StatusWindow::setPointsNeeded(const int id, const int needed) } void StatusWindow::addAttribute(const int id, const std::string &name, + const std::string &shortName, const bool modifiable, const std::string &description A_UNUSED) { @@ -443,12 +451,12 @@ void StatusWindow::addAttribute(const int id, const std::string &name, if (modifiable) { - disp = new ChangeDisplay(this, id, name); + disp = new ChangeDisplay(this, id, name, shortName); mAttrCont->add1(disp); } else { - disp = new DerDisplay(this, id, name); + disp = new DerDisplay(this, id, name, shortName); mDAttrCont->add1(disp); } mAttrs[id] = disp; @@ -743,7 +751,10 @@ void StatusWindow::action(const gcn::ActionEvent &event) const ChangeDisplay *const attr = dynamic_cast( (*it).second); if (attr) - str += attr->getValue() + " "; + { + str += strprintf("%s:%s ", attr->getShortName().c_str(), + attr->getValue().c_str()); + } ++ it; } chatWindow->addInputText(str); @@ -751,10 +762,12 @@ void StatusWindow::action(const gcn::ActionEvent &event) } AttrDisplay::AttrDisplay(const Widget2 *const widget, - const int id, const std::string &name) : + const int id, const std::string &name, + const std::string &shortName) : Container(widget), mId(id), mName(name), + mShortName(shortName), mLayout(new LayoutHelper(this)), mLabel(new Label(this, name)), mValue(new Label(this, "1 ")) @@ -785,8 +798,9 @@ std::string AttrDisplay::update() } DerDisplay::DerDisplay(const Widget2 *const widget, - const int id, const std::string &name) : - AttrDisplay(widget, id, name) + const int id, const std::string &name, + const std::string &shortName) : + AttrDisplay(widget, id, name, shortName) { ContainerPlacer place = mLayout->getPlacer(0, 0); @@ -797,8 +811,9 @@ DerDisplay::DerDisplay(const Widget2 *const widget, } ChangeDisplay::ChangeDisplay(const Widget2 *const widget, - const int id, const std::string &name) : - AttrDisplay(widget, id, name), + const int id, const std::string &name, + const std::string &shortName) : + AttrDisplay(widget, id, name, shortName), gcn::ActionListener(), mNeeded(1), mPoints(new Label(this, _("Max"))), diff --git a/src/gui/statuswindow.h b/src/gui/statuswindow.h index 2efc4bfb2..26e181421 100644 --- a/src/gui/statuswindow.h +++ b/src/gui/statuswindow.h @@ -61,8 +61,9 @@ class StatusWindow final : public Window, void setPointsNeeded(const int id, const int needed); void addAttribute(const int id, const std::string &name, - const bool modifiable, - const std::string &description); + const std::string &shortName = "", + const bool modifiable = false, + const std::string &description = ""); static void updateHPBar(ProgressBar *const bar, const bool showMax = false); diff --git a/src/net/eathena/generalhandler.cpp b/src/net/eathena/generalhandler.cpp index 91f567548..0e0bc5eeb 100644 --- a/src/net/eathena/generalhandler.cpp +++ b/src/net/eathena/generalhandler.cpp @@ -255,31 +255,32 @@ void GeneralHandler::processEvent(Channels channel, // protection against double addition attributes. statusWindow->clearAttributes(); - statusWindow->addAttribute(STR, _("Strength"), true, ""); - statusWindow->addAttribute(AGI, _("Agility"), true, ""); - statusWindow->addAttribute(VIT, _("Vitality"), true, ""); - statusWindow->addAttribute(INT, _("Intelligence"), true, ""); - statusWindow->addAttribute(DEX, _("Dexterity"), true, ""); - statusWindow->addAttribute(LUK, _("Luck"), true, ""); - - statusWindow->addAttribute(ATK, _("Attack"), false, ""); - statusWindow->addAttribute(DEF, _("Defense"), false, ""); - statusWindow->addAttribute(MATK, _("M.Attack"), false, ""); - statusWindow->addAttribute(MDEF, _("M.Defense"), false, ""); + statusWindow->addAttribute(STR, _("Strength"), "str", true, ""); + statusWindow->addAttribute(AGI, _("Agility"), "agi", true, ""); + statusWindow->addAttribute(VIT, _("Vitality"), "vit", true, ""); + statusWindow->addAttribute(INT, _("Intelligence"), + "int", true, ""); + statusWindow->addAttribute(DEX, _("Dexterity"), "dex", true, ""); + statusWindow->addAttribute(LUK, _("Luck"), "luk", true, ""); + + statusWindow->addAttribute(ATK, _("Attack")); + statusWindow->addAttribute(DEF, _("Defense")); + statusWindow->addAttribute(MATK, _("M.Attack")); + statusWindow->addAttribute(MDEF, _("M.Defense")); // xgettext:no-c-format - statusWindow->addAttribute(HIT, _("% Accuracy"), false, ""); + statusWindow->addAttribute(HIT, _("% Accuracy")); // xgettext:no-c-format - statusWindow->addAttribute(FLEE, _("% Evade"), false, ""); + statusWindow->addAttribute(FLEE, _("% Evade")); // xgettext:no-c-format - statusWindow->addAttribute(CRIT, _("% Critical"), false, ""); + statusWindow->addAttribute(CRIT, _("% Critical")); statusWindow->addAttribute(PlayerInfo::ATTACK_DELAY, - _("Attack Delay"), false, ""); + _("Attack Delay")); statusWindow->addAttribute(PlayerInfo::WALK_SPEED, - _("Walk Delay"), false, ""); + _("Walk Delay")); statusWindow->addAttribute(PlayerInfo::ATTACK_RANGE, - _("Attack Range"), false, ""); + _("Attack Range")); statusWindow->addAttribute(PlayerInfo::ATTACK_SPEED, - _("Damage per sec."), false, ""); + _("Damage per sec.")); } else if (event.getName() == EVENT_GUIWINDOWSUNLOADING) { diff --git a/src/net/tmwa/generalhandler.cpp b/src/net/tmwa/generalhandler.cpp index 39e37f62e..4666b9507 100644 --- a/src/net/tmwa/generalhandler.cpp +++ b/src/net/tmwa/generalhandler.cpp @@ -264,31 +264,32 @@ void GeneralHandler::processEvent(Channels channel, // protection against double addition attributes. statusWindow->clearAttributes(); - statusWindow->addAttribute(STR, _("Strength"), true, ""); - statusWindow->addAttribute(AGI, _("Agility"), true, ""); - statusWindow->addAttribute(VIT, _("Vitality"), true, ""); - statusWindow->addAttribute(INT, _("Intelligence"), true, ""); - statusWindow->addAttribute(DEX, _("Dexterity"), true, ""); - statusWindow->addAttribute(LUK, _("Luck"), true, ""); - - statusWindow->addAttribute(ATK, _("Attack"), false, ""); - statusWindow->addAttribute(DEF, _("Defense"), false, ""); - statusWindow->addAttribute(MATK, _("M.Attack"), false, ""); - statusWindow->addAttribute(MDEF, _("M.Defense"), false, ""); + statusWindow->addAttribute(STR, _("Strength"), "str", true, ""); + statusWindow->addAttribute(AGI, _("Agility"), "agi", true, ""); + statusWindow->addAttribute(VIT, _("Vitality"), "vit", true, ""); + statusWindow->addAttribute(INT, _("Intelligence"), + "int", true, ""); + statusWindow->addAttribute(DEX, _("Dexterity"), "dex", true, ""); + statusWindow->addAttribute(LUK, _("Luck"), "luk", true, ""); + + statusWindow->addAttribute(ATK, _("Attack")); + statusWindow->addAttribute(DEF, _("Defense")); + statusWindow->addAttribute(MATK, _("M.Attack")); + statusWindow->addAttribute(MDEF, _("M.Defense")); // xgettext:no-c-format - statusWindow->addAttribute(HIT, _("% Accuracy"), false, ""); + statusWindow->addAttribute(HIT, _("% Accuracy")); // xgettext:no-c-format - statusWindow->addAttribute(FLEE, _("% Evade"), false, ""); + statusWindow->addAttribute(FLEE, _("% Evade")); // xgettext:no-c-format - statusWindow->addAttribute(CRIT, _("% Critical"), false, ""); + statusWindow->addAttribute(CRIT, _("% Critical")); statusWindow->addAttribute(PlayerInfo::ATTACK_DELAY, - _("Attack Delay"), false, ""); + _("Attack Delay")); statusWindow->addAttribute(PlayerInfo::WALK_SPEED, - _("Walk Delay"), false, ""); + _("Walk Delay")); statusWindow->addAttribute(PlayerInfo::ATTACK_RANGE, - _("Attack Range"), false, ""); + _("Attack Range")); statusWindow->addAttribute(PlayerInfo::ATTACK_SPEED, - _("Damage per sec."), false, ""); + _("Damage per sec.")); } else if (event.getName() == EVENT_GUIWINDOWSUNLOADING) { -- cgit v1.2.3-70-g09d2