예제 #1
0
void tgame_load::display_savegame(twindow& window)
{
	const int selected_row = savegame_list_->get_selected_row();

	twidget& preview_pane =
			find_widget<twidget>(&window, "preview_pane", false);

	if (selected_row == -1) {
		preview_pane.set_visible(twidget::HIDDEN);
	} else if (current_page_ == LOCAL_PAGE) {
		preview_pane.set_visible(twidget::VISIBLE);

		savegame::save_info& game = games_[selected_row];
		filename_ = game.name;

		config cfg_summary;
		std::string dummy;

		try {
			savegame::manager::load_summary(game.name, cfg_summary, &dummy);
		} catch(game::load_game_failed&) {
			cfg_summary["corrupt"] = "yes";
		}

		find_widget<timage>(&window, "imgLeader", false).
				set_label(cfg_summary["leader_image"]);

		find_widget<tminimap>(&window, "minimap", false).
				set_map_data(cfg_summary["map_data"]);

		find_widget<tlabel>(&window, "lblScenario", false).set_label(game.name);

		std::stringstream str;
		str << format_time_local(cfg_summary["create"].to_long()) << "\n";
		str << _("Total time") << ": " << format_time_elapse(cfg_summary["duration"].to_int());
		str << "(" << help::tintegrate::generate_format(cfg_summary["hash"].to_int(), "yellow") << ")";
		evaluate_summary_string(str, cfg_summary);

		find_widget<tlabel>(&window, "lblSummary", false).set_label(str.str());

		window.invalidate_layout();

	} else if (current_page_ == NETWORK_PAGE) {
		preview_pane.set_visible(twidget::VISIBLE);

		savegame::www_save_info& game = www_saves_[selected_row];
		filename_ = game.name;

		find_widget<tminimap>(&window, "minimap", false).set_map_data("");

		find_widget<tlabel>(&window, "lblScenario", false).set_label(game.name);

		find_widget<tlabel>(&window, "lblSummary", false).set_label("");
	}
}
예제 #2
0
std::string tgame_load::generate_summary(const std::string& game, const config& cfg_summary) const
{
	std::stringstream ss;

	ss << game;
	ss << "\n";
	ss << "\n";

	ss << format_time_local(cfg_summary["create"].to_long()) << "\n";
	ss << _("Total time") << ": " << format_elapse_hms2(cfg_summary["duration"].to_int());
	ss << "(" << tintegrate::generate_format(cfg_summary["hash"].to_int(), "yellow") << ")";
	evaluate_summary_string(ss, cfg_summary);

	return ss.str();
}