Partially restore 2011-09-29T15:55:30Z!thonsew@yahoo.com, which fixes bug #18745.
This version is flawed though, and does not yet work for female units.
This commit is contained in:
parent
9ec3fe6e7b
commit
328ab64d6f
8 changed files with 34 additions and 33 deletions
|
@ -942,8 +942,8 @@ const unit_preview_pane::details units_list_preview_pane::get_details() const
|
|||
det.traits = utils::join(u.trait_names(), ", ");
|
||||
|
||||
//we filter to remove the tooltips (increment by 2)
|
||||
const std::vector<std::string> &abilities = u.ability_tooltips(true);
|
||||
for(std::vector<std::string>::const_iterator a = abilities.begin();
|
||||
const std::vector<t_string> &abilities = u.ability_tooltips(true);
|
||||
for(std::vector<t_string>::const_iterator a = abilities.begin();
|
||||
a != abilities.end(); a+=2) {
|
||||
det.abilities.push_back(*a);
|
||||
}
|
||||
|
|
|
@ -2212,6 +2212,7 @@ void display::refresh_report(std::string const &report_name, const config &_repo
|
|||
SDL_Rect &rect = reportRects_[report_name];
|
||||
const SDL_Rect &new_rect = item->location(screen_area());
|
||||
surface &surf = reportSurfaces_[report_name];
|
||||
/// @todo check to see if reports_ is ever updated
|
||||
config &report = reports_[report_name];
|
||||
|
||||
// Report and its location is unchanged since last time. Do nothing.
|
||||
|
@ -2375,10 +2376,10 @@ void display::refresh_report(std::string const &report_name, const config &_repo
|
|||
}
|
||||
|
||||
skip_element:
|
||||
t = (*elements.first)["tooltip"].str();
|
||||
t = (*elements.first)["tooltip"].t_str().base_str();
|
||||
if (!t.empty()) {
|
||||
if (!used_ellipsis) {
|
||||
tooltips::add_tooltip(area, t, (*elements.first)["help"]);
|
||||
tooltips::add_tooltip(area, t, (*elements.first)["help"].t_str().base_str());
|
||||
} else {
|
||||
// Collect all tooltips for the ellipsis.
|
||||
// TODO: need a better separator
|
||||
|
|
12
src/help.cpp
12
src/help.cpp
|
@ -1180,13 +1180,13 @@ std::vector<topic> generate_ability_topics(const bool sort_generated)
|
|||
abil_vecs[0] = &type.abilities();
|
||||
abil_vecs[1] = &type.adv_abilities();
|
||||
|
||||
std::vector<std::string> const* desc_vecs[2];
|
||||
std::vector<t_string> const* desc_vecs[2];
|
||||
desc_vecs[0] = &type.ability_tooltips();
|
||||
desc_vecs[1] = &type.adv_ability_tooltips();
|
||||
|
||||
for(int i=0; i<2; ++i) {
|
||||
std::vector<t_string> const& abil_vec = *abil_vecs[i];
|
||||
std::vector<std::string> const& desc_vec = *desc_vecs[i];
|
||||
std::vector<t_string> const& desc_vec = *desc_vecs[i];
|
||||
for(size_t j=0; j < abil_vec.size(); ++j) {
|
||||
t_string const& abil_name = abil_vec[j];
|
||||
if (ability_description.find(abil_name) == ability_description.end()) {
|
||||
|
@ -1251,9 +1251,9 @@ std::vector<topic> generate_faction_topics(const bool sort_generated)
|
|||
|
||||
std::stringstream text;
|
||||
|
||||
const std::string& description = f["description"];
|
||||
const config::attribute_value& description = f["description"];
|
||||
if (!description.empty()) {
|
||||
text << description << "\n";
|
||||
text << description.t_str() << "\n";
|
||||
text << "\n";
|
||||
}
|
||||
|
||||
|
@ -1282,9 +1282,9 @@ std::vector<topic> generate_faction_topics(const bool sort_generated)
|
|||
std::stringstream text;
|
||||
text << "<header>text='" << _("Era:") << " " << era["name"] << "'</header>" << "\n";
|
||||
text << "\n";
|
||||
const std::string& description = era["description"];
|
||||
const config::attribute_value& description = era["description"];
|
||||
if (!description.empty()) {
|
||||
text << description << "\n";
|
||||
text << description.t_str() << "\n";
|
||||
text << "\n";
|
||||
}
|
||||
|
||||
|
|
|
@ -346,16 +346,16 @@ static config unit_abilities(unit* u)
|
|||
{
|
||||
if (!u) return report();
|
||||
config res;
|
||||
const std::vector<std::string> &abilities = u->ability_tooltips();
|
||||
for (std::vector<std::string>::const_iterator i = abilities.begin(),
|
||||
const std::vector<t_string> &abilities = u->ability_tooltips();
|
||||
for (std::vector<t_string>::const_iterator i = abilities.begin(),
|
||||
i_end = abilities.end(); i != i_end; ++i)
|
||||
{
|
||||
std::ostringstream str, tooltip;
|
||||
const std::string &name = *i;
|
||||
str << gettext(name.c_str());
|
||||
const std::string &name = i->base_str();
|
||||
str << i->str();
|
||||
if (i + 2 != i_end) str << ", ";
|
||||
++i;
|
||||
tooltip << _("Ability: ") << *i;
|
||||
tooltip << _("Ability: ") << i->str();
|
||||
add_text(res, str.str(), tooltip.str(), "ability_" + name);
|
||||
}
|
||||
return res;
|
||||
|
|
|
@ -304,7 +304,7 @@ public:
|
|||
unit_ability_list get_abilities(const std::string &ability, const map_location& loc) const;
|
||||
unit_ability_list get_abilities(const std::string &ability) const
|
||||
{ return get_abilities(ability, loc_); }
|
||||
std::vector<std::string> ability_tooltips(bool force_active = false) const;
|
||||
std::vector<t_string> ability_tooltips(bool force_active = false) const;
|
||||
std::vector<std::string> get_ability_list() const;
|
||||
bool has_ability_type(const std::string& ability) const;
|
||||
|
||||
|
|
|
@ -201,9 +201,9 @@ std::vector<std::string> unit::get_ability_list() const
|
|||
return res;
|
||||
}
|
||||
|
||||
std::vector<std::string> unit::ability_tooltips(bool force_active) const
|
||||
std::vector<t_string> unit::ability_tooltips(bool force_active) const
|
||||
{
|
||||
std::vector<std::string> res;
|
||||
std::vector<t_string> res;
|
||||
|
||||
const config &abilities = cfg_.child("abilities");
|
||||
if (!abilities) return res;
|
||||
|
@ -212,24 +212,24 @@ std::vector<std::string> unit::ability_tooltips(bool force_active) const
|
|||
{
|
||||
if (force_active || ability_active(ab.key, ab.cfg, loc_))
|
||||
{
|
||||
std::string const &name =
|
||||
t_string const &name =
|
||||
gender_ == unit_race::MALE || ab.cfg["female_name"].empty() ?
|
||||
ab.cfg["name"] : ab.cfg["female_name"];
|
||||
ab.cfg["name"].t_str() : ab.cfg["female_name"].t_str();
|
||||
|
||||
if (!name.empty()) {
|
||||
res.push_back(name);
|
||||
res.push_back(ab.cfg["description"]);
|
||||
res.push_back(ab.cfg["description"].t_str());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string const &name =
|
||||
t_string const &name =
|
||||
gender_ == unit_race::MALE || ab.cfg["female_name_inactive"].empty() ?
|
||||
ab.cfg["name_inactive"] : ab.cfg["female_name_inactive"];
|
||||
ab.cfg["name_inactive"].t_str() : ab.cfg["female_name_inactive"].t_str();
|
||||
|
||||
if (!name.empty()) {
|
||||
res.push_back(name);
|
||||
res.push_back(ab.cfg["description_inactive"]);
|
||||
res.push_back(ab.cfg["description_inactive"].t_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -802,10 +802,10 @@ void unit_type::build_help_index(const movement_type_map &mv_types,
|
|||
if (const config &abil_cfg = cfg.child("abilities"))
|
||||
{
|
||||
foreach (const config::any_child &ab, abil_cfg.all_children_range()) {
|
||||
const std::string &name = ab.cfg["name"];
|
||||
const config::attribute_value &name = ab.cfg["name"];
|
||||
if (!name.empty()) {
|
||||
abilities_.push_back(name);
|
||||
ability_tooltips_.push_back(ab.cfg["description"]);
|
||||
abilities_.push_back(name.t_str());
|
||||
ability_tooltips_.push_back( ab.cfg["description"].t_str() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -819,10 +819,10 @@ void unit_type::build_help_index(const movement_type_map &mv_types,
|
|||
continue;
|
||||
}
|
||||
foreach (const config::any_child &ab, abil_cfg.all_children_range()) {
|
||||
const std::string &name = ab.cfg["name"];
|
||||
const config::attribute_value &name = ab.cfg["name"];
|
||||
if (!name.empty()) {
|
||||
adv_abilities_.push_back(name);
|
||||
adv_ability_tooltips_.push_back(ab.cfg["description"]);
|
||||
adv_abilities_.push_back(name.t_str());
|
||||
adv_ability_tooltips_.push_back( ab.cfg["description"].t_str() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -257,11 +257,11 @@ public:
|
|||
fixed_t alpha() const { return alpha_; }
|
||||
|
||||
const std::vector<t_string>& abilities() const { return abilities_; }
|
||||
const std::vector<std::string>& ability_tooltips() const { return ability_tooltips_; }
|
||||
const std::vector<t_string>& ability_tooltips() const { return ability_tooltips_; }
|
||||
|
||||
// some extra abilities may be gained through AMLA advancements
|
||||
const std::vector<t_string>& adv_abilities() const { return adv_abilities_; }
|
||||
const std::vector<std::string>& adv_ability_tooltips() const { return adv_ability_tooltips_; }
|
||||
const std::vector<t_string>& adv_ability_tooltips() const { return adv_ability_tooltips_; }
|
||||
|
||||
bool can_advance() const { return !advances_to_.empty(); }
|
||||
|
||||
|
@ -322,7 +322,7 @@ private:
|
|||
fixed_t alpha_;
|
||||
|
||||
std::vector<t_string> abilities_, adv_abilities_;
|
||||
std::vector<std::string> ability_tooltips_, adv_ability_tooltips_;
|
||||
std::vector<t_string> ability_tooltips_, adv_ability_tooltips_;
|
||||
|
||||
bool zoc_, hide_help_;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue