void tsignin::fillup(twindow& window) { if (!group.signin().break_days) { return; } utils::string_map symbols; std::stringstream err; int coin = 0; int score = 200; symbols["score"] = tintegrate::generate_format(score, "red"); symbols["do"] = tintegrate::generate_format(_("signin^Fill up"), "yellow"); std::string message = vgettext2("Do you want to spend $score score to $do?", symbols); int res = gui2::show_message(disp_.video(), "", message, gui2::tmessage::yes_no_buttons); if (res == gui2::twindow::CANCEL) { return; } if (sum_score(group.coin(), group.score()) < score) { symbols.clear(); symbols["coin"] = tintegrate::generate_format(coin, "red"); symbols["score"] = tintegrate::generate_format(score, "red"); err << vgettext2("Repertory is not enough to pay $coin coin and $score score. If lack one only, can exchange between coin and score.", symbols); gui2::show_message(disp_.video(), "", err.str()); return; } http::membership m = http::signin(disp_, heros_, http::signin_tag_fillup); if (m.uid >= 0) { group.from_local_membership(disp_, heros_, m, false); refresh_signin_information(window); } }
void texile::join(twindow& window) { tlistbox& list = find_widget<tlistbox>(&window, "type_list", false); hero& h = heros_[selected_number_]; int coin_income = 0, score_income = -1 * game_config::score_used_draw; const tgroup::tmember& m = group_.exile(h); std::stringstream strstr; utils::string_map symbols; if (sum_score(group_.coin(), group_.score()) < game_config::score_used_draw) { symbols["score"] = tintegrate::generate_format(game_config::score_used_draw, "red"); symbols["do"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "Join"), "yellow"); std::string message = vgettext("wesnoth-lib", "Repertory is less than $score score, cannot $do.", symbols); gui2::show_message(disp_.video(), "", message); return; } symbols["score"] = tintegrate::generate_format(-1 * score_income, "red"); symbols["do"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "Join"), "yellow"); strstr.str(""); strstr << vgettext("wesnoth-lib", "Do you want to spend $score score to $do?", symbols) << "\n\n"; symbols["name"] = tintegrate::generate_format(h.name(), "green"); symbols["location"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "member^Fix"), "yellow"); strstr << vgettext("wesnoth-lib", "$name will put into $location.", symbols); int res = gui2::show_message(disp_.video(), "", strstr.str(), gui2::tmessage::yes_no_buttons); if (res == gui2::twindow::CANCEL) { return; } std::vector<std::pair<int, int> > m2; m2.push_back(std::make_pair(m.base->number_, m.level)); http::membership member = http::exile(disp_, heros_, http::exile_tag_join, m2, coin_income, score_income); if (member.uid < 0) { return; } group_.from_local_membership(disp_, heros_, member, false); fill_exile_table(window, list.get_selected_row()); dirty_ = true; }