static stuff_list_adder add_unit_entry(stuff_list_adder& progress, const unit& u, const display_context& dc) { Uint32 team_color = game_config::tc_info(dc.get_team(u.side()).color())[0]; std::stringstream s; s << '(' << u.get_location() << ')'; progress.widget("loc", s.str()); s.str(""); s << "<span color='#" << std::hex << team_color << std::dec; s << "'>side=" << u.side() << "</span>"; progress.widget("side", s.str(), true); if(u.can_recruit()) { progress.widget("leader", "<span color='yellow'>LEADER</span> ", true); } s.str(""); s << "id=\"" << u.id() << '"'; progress.widget("id", s.str()); progress.widget("type", u.type_id()); s.str(""); s << "L" << u.level(); progress.widget("level", s.str()); s.str(""); s << u.experience() << '/' << u.max_experience() << " xp"; progress.widget("xp", s.str()); s.str(""); s << u.hitpoints() << '/' << u.max_hitpoints() << " hp"; progress.widget("hp", s.str()); progress.widget("traits", utils::join(u.get_traits_list(), ", ")); return progress; }
static std::string format_stats(const unit& u) { const std::string name = "<span size='large'>" + (!u.name().empty() ? u.name() : " ") + "</span>"; std::string traits; BOOST_FOREACH(const std::string& trait, u.get_traits_list()) { traits += (traits.empty() ? "" : ", ") + trait; } if (traits.empty()) { traits = " "; } std::stringstream str; str << name << "\n"; str << "<small>"; str << "<span color='#f5e6c1'>" << u.type_name() << "</span>" << "\n"; str << "Lvl " << u.level() << "\n"; str << u.alignment() << "\n"; str << traits << "\n"; str << font::span_color(u.hp_color()) << _("HP: ") << u.hitpoints() << "/" << u.max_hitpoints() << "</span>" << "\n"; str << font::span_color(u.xp_color()) << _("XP: ") << u.experience() << "/" << u.max_experience() << "</span>" << "\n"; str << "</small>" << "\n"; return str.str(); }