X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fstatistics.cpp;h=515fb111e628fd0aa1cd1650fbdf117ade1d0408;hb=7e1ffbded538860c7f647d4597ee3dcb1f0917ca;hp=bb07870be1071d267088e20a98bc826725ca10f5;hpb=82feba7a0539870623b0c125211eec0adac9bf53;p=supertux.git diff --git a/src/statistics.cpp b/src/statistics.cpp index bb07870be..515fb111e 100644 --- a/src/statistics.cpp +++ b/src/statistics.cpp @@ -129,7 +129,7 @@ Statistics::draw_worldmap_info(DrawingContext& context) // skip draw if stats were declared invalid if (!valid) return; - context.draw_text(white_small_text, std::string("- ") + _("Best Level Statistics") + " -", Vector((WMAP_INFO_LEFT_X + WMAP_INFO_RIGHT_X) / 2, WMAP_INFO_TOP_Y1), ALIGN_CENTER, LAYER_GUI); + context.draw_text(small_font, std::string("- ") + _("Best Level Statistics") + " -", Vector((WMAP_INFO_LEFT_X + WMAP_INFO_RIGHT_X) / 2, WMAP_INFO_TOP_Y1), ALIGN_CENTER, LAYER_GUI,Statistics::header_color); std::string caption_buf; std::string stat_buf; @@ -138,77 +138,34 @@ Statistics::draw_worldmap_info(DrawingContext& context) switch (stat_no) { case 0: - caption_buf = _("Max coins collected:"); - stat_buf = coins_to_string(coins, total_coins); - break; + caption_buf = _("Max coins collected:"); + stat_buf = coins_to_string(coins, total_coins); + break; case 1: - caption_buf = _("Max fragging:"); - stat_buf = frags_to_string(badguys, total_badguys); - break; + caption_buf = _("Max fragging:"); + stat_buf = frags_to_string(badguys, total_badguys); + break; case 2: - caption_buf = _("Min time needed:"); - stat_buf = time_to_string(time); - break; + caption_buf = _("Min time needed:"); + stat_buf = time_to_string(time); + break; case 3: - caption_buf = _("Max secrets found:"); - stat_buf = secrets_to_string(secrets, total_secrets); - break; + caption_buf = _("Max secrets found:"); + stat_buf = secrets_to_string(secrets, total_secrets); + break; default: - log_debug << "Invalid stat requested to be drawn" << std::endl; - break; + log_debug << "Invalid stat requested to be drawn" << std::endl; + break; } - context.draw_text(white_small_text, caption_buf, Vector(WMAP_INFO_LEFT_X, posy), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_small_text, stat_buf, Vector(WMAP_INFO_RIGHT_X, posy), ALIGN_RIGHT, LAYER_GUI); - posy += white_small_text->get_height() + 2; + context.draw_text(small_font, caption_buf, Vector(WMAP_INFO_LEFT_X, posy), ALIGN_LEFT, LAYER_GUI, Statistics::header_color); + context.draw_text(small_font, stat_buf, Vector(WMAP_INFO_RIGHT_X, posy), ALIGN_RIGHT, LAYER_GUI, Statistics::header_color); + posy += small_font->get_height() + 2; } } void -Statistics::draw_message_info(DrawingContext& context, std::string title) -{ - // skip draw if level was never played - // TODO: do we need this? - if (coins == nv_coins) return; - - // skip draw if stats were declared invalid - if (!valid) return; - - const float width = white_small_text->get_text_width("Max coins collected: 1111 / 1111"); - const float left = (SCREEN_WIDTH - width) / 2; - const float right = (SCREEN_WIDTH + width) / 2; - - context.draw_text(gold_text, title, Vector(SCREEN_WIDTH/2, 410), ALIGN_CENTER, LAYER_GUI); - - char stat_buf[128]; - int py = 450 + 18; - - snprintf(stat_buf, sizeof(stat_buf), "%d/%d", coins, total_coins); - context.draw_text(white_small_text, _("Max coins collected:"), Vector(left, py), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_small_text, "%d / %d", Vector(right, py), ALIGN_RIGHT, LAYER_GUI); - py+=18; - - snprintf(stat_buf, sizeof(stat_buf), "%d/%d", badguys, total_badguys); - context.draw_text(white_small_text, _("Max fragging:"), Vector(left, py), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_small_text, "%d / %d", Vector(right, py), ALIGN_RIGHT, LAYER_GUI); - py+=18; - - int csecs = (int)(time * 100); - int mins = (int)(csecs / 6000); - int secs = (csecs % 6000) / 100; - snprintf(stat_buf, sizeof(stat_buf), "%02d:%02d", mins,secs); - context.draw_text(white_small_text, _("Min time needed:"), Vector(left, py), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_small_text, "%02d:%02d", Vector(right, py), ALIGN_RIGHT, LAYER_GUI); - py+=18; - - snprintf(stat_buf, sizeof(stat_buf), "%d/%d", secrets, total_secrets); - context.draw_text(white_small_text, _("Max secrets found:"), Vector(left, py), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_small_text, "%d / %d", Vector(right, py), ALIGN_RIGHT, LAYER_GUI); - py+=18; -} - -void Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, Surface* backdrop) { // skip draw if level was never played @@ -245,26 +202,25 @@ Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, S context.draw_surface(backdrop, Vector(bd_x, bd_y), LAYER_GUI); context.pop_transform(); - char buf[129]; - context.draw_text(white_text, _("You"), Vector(col2_x, row1_y), ALIGN_LEFT, LAYER_GUI); - context.draw_text(white_text, _("Best"), Vector(col3_x, row1_y), ALIGN_LEFT, LAYER_GUI); + context.draw_text(normal_font, _("You"), Vector(col2_x, row1_y), ALIGN_LEFT, LAYER_GUI, Statistics::header_color); + context.draw_text(normal_font, _("Best"), Vector(col3_x, row1_y), ALIGN_LEFT, LAYER_GUI, Statistics::header_color); - context.draw_text(white_text, _("Coins"), Vector(col2_x-16, row3_y), ALIGN_RIGHT, LAYER_GUI); + context.draw_text(normal_font, _("Coins"), Vector(col2_x-16, row3_y), ALIGN_RIGHT, LAYER_GUI, Statistics::header_color); int coins_best = (best_stats && (best_stats->coins > coins)) ? best_stats->coins : coins; int total_coins_best = (best_stats && (best_stats->total_coins > total_coins)) ? best_stats->total_coins : total_coins; - context.draw_text(gold_text, coins_to_string(coins, total_coins), Vector(col2_x, row3_y), ALIGN_LEFT, LAYER_GUI); - context.draw_text(gold_text, coins_to_string(coins_best, total_coins_best), Vector(col3_x, row3_y), ALIGN_LEFT, LAYER_GUI); + context.draw_text(normal_font, coins_to_string(coins, total_coins), Vector(col2_x, row3_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); + context.draw_text(normal_font, coins_to_string(coins_best, total_coins_best), Vector(col3_x, row3_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); - context.draw_text(white_text, _("Secrets"), Vector(col2_x-16, row4_y), ALIGN_RIGHT, LAYER_GUI); + context.draw_text(normal_font, _("Secrets"), Vector(col2_x-16, row4_y), ALIGN_RIGHT, LAYER_GUI, Statistics::header_color); int secrets_best = (best_stats && (best_stats->secrets > secrets)) ? best_stats->secrets : secrets; int total_secrets_best = (best_stats && (best_stats->total_secrets > total_secrets)) ? best_stats->total_secrets : total_secrets; - context.draw_text(gold_text, secrets_to_string(secrets, total_secrets), Vector(col2_x, row4_y), ALIGN_LEFT, LAYER_GUI); - context.draw_text(gold_text, secrets_to_string(secrets_best, total_secrets_best), Vector(col3_x, row4_y), ALIGN_LEFT, LAYER_GUI); + context.draw_text(normal_font, secrets_to_string(secrets, total_secrets), Vector(col2_x, row4_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); + context.draw_text(normal_font, secrets_to_string(secrets_best, total_secrets_best), Vector(col3_x, row4_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); - context.draw_text(white_text, _("Time"), Vector(col2_x-16, row2_y), ALIGN_RIGHT, LAYER_GUI); + context.draw_text(normal_font, _("Time"), Vector(col2_x-16, row2_y), ALIGN_RIGHT, LAYER_GUI, Statistics::header_color); float time_best = (best_stats && (best_stats->time < time)) ? best_stats->time : time; - context.draw_text(gold_text, time_to_string(time), Vector(col2_x, row2_y), ALIGN_LEFT, LAYER_GUI); - context.draw_text(gold_text, time_to_string(time_best), Vector(col3_x, row2_y), ALIGN_LEFT, LAYER_GUI); + context.draw_text(normal_font, time_to_string(time), Vector(col2_x, row2_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); + context.draw_text(normal_font, time_to_string(time_best), Vector(col3_x, row2_y), ALIGN_LEFT, LAYER_GUI, Statistics::text_color); } void @@ -286,7 +242,7 @@ Statistics::reset() } void -Statistics::merge(Statistics& s2) +Statistics::merge(const Statistics& s2) { if (!s2.valid) return; coins = std::max(coins, s2.coins); @@ -318,21 +274,21 @@ Statistics::declare_invalid() } std::string -Statistics::coins_to_string(int coins, int total_coins) const { +Statistics::coins_to_string(int coins, int total_coins) { std::ostringstream os; os << std::min(coins, 999) << "/" << std::min(total_coins, 999); return os.str(); } std::string -Statistics::frags_to_string(int badguys, int total_badguys) const { +Statistics::frags_to_string(int badguys, int total_badguys) { std::ostringstream os; os << std::min(badguys, 999) << "/" << std::min(total_badguys, 999); return os.str(); } std::string -Statistics::time_to_string(float time) const { +Statistics::time_to_string(float time) { int time_csecs = std::min(static_cast(time * 100), 99 * 6000 + 9999); int mins = (time_csecs / 6000); int secs = (time_csecs % 6000) / 100; @@ -344,7 +300,7 @@ Statistics::time_to_string(float time) const { } std::string -Statistics::secrets_to_string(int secrets, int total_secrets) const { +Statistics::secrets_to_string(int secrets, int total_secrets) { std::ostringstream os; os << std::min(secrets, 999) << "/" << std::min(total_secrets, 999); return os.str();