From cfa6a410943ae4fee8d5d8c5270f7119a82fe970 Mon Sep 17 00:00:00 2001 From: Christoph Sommer Date: Sun, 9 Apr 2006 23:05:23 +0000 Subject: [PATCH] Level statistics panel shown during level's end sequence SVN-Revision: 3282 --- data/images/engine/menu/score-backdrop.png | Bin 23695 -> 30520 bytes src/game_session.cpp | 52 ++++++++++++++----------- src/game_session.hpp | 3 ++ src/statistics.cpp | 60 +++++++++++++++++++++++++++++ src/statistics.hpp | 5 ++- 5 files changed, 96 insertions(+), 24 deletions(-) diff --git a/data/images/engine/menu/score-backdrop.png b/data/images/engine/menu/score-backdrop.png index 76e66c4cda6e320b560f2b0a16da0f8e45950546..6f126995f04c92cb10704bf0e1c0f5eb2557ec65 100644 GIT binary patch literal 30520 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�crq?43Gn_oBmGs)#a&X+=7i|asZznsD~ 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 a0Co23Y+sdK0Pr2R04Xtf(HddHU;htV`7e$D literal 23695 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 VD-Bex(h&dv002ovPDHLkV1m_d=CS|) diff --git a/src/game_session.cpp b/src/game_session.cpp index b502668c6..53152b35a 100644 --- a/src/game_session.cpp +++ b/src/game_session.cpp @@ -119,6 +119,8 @@ GameSession::GameSession(const std::string& levelfile_, GameSessionMode mode, Console::registerCommand(consoleCommands[i], this); } + statistics_backdrop = new Surface("images/engine/menu/score-backdrop.png"); + restart_level(true); } @@ -195,6 +197,8 @@ GameSession::~GameSession() Console::unregisterCommand(consoleCommands[i], this); } + delete statistics_backdrop; + current_ = NULL; } @@ -451,28 +455,6 @@ GameSession::check_end_conditions() /* End of level? */ if(end_sequence && endsequence_timer.check()) { finish(true); - - // add time spent to statistics - int tottime = 0, remtime = 0; - for(std::vector::iterator i = level->sectors.begin(); i != level->sectors.end(); ++i) - { - Sector* sec = *i; - - for(std::vector::iterator j = sec->gameobjects.begin(); - j != sec->gameobjects.end(); ++j) - { - GameObject* obj = *j; - - LevelTime* lt = dynamic_cast (obj); - if(lt) - { - tottime += int(lt->get_level_time()); - remtime += int(lt->get_remaining_time()); - } - } - } - global_stats.set_points(TIME_NEEDED_STAT, (tottime == 0 ? -1 : (tottime-remtime))); - return; } else if (!end_sequence && tux->is_dead()) { if (player_status->coins < 0) { @@ -796,6 +778,27 @@ GameSession::start_sequence(const std::string& sequencename) lt->stop(); } + // add time spent to statistics + int tottime = 0, remtime = 0; + for(std::vector::iterator i = level->sectors.begin(); i != level->sectors.end(); ++i) + { + Sector* sec = *i; + + for(std::vector::iterator j = sec->gameobjects.begin(); + j != sec->gameobjects.end(); ++j) + { + GameObject* obj = *j; + + LevelTime* lt = dynamic_cast (obj); + if(lt) + { + tottime += int(lt->get_level_time()); + remtime += int(lt->get_remaining_time()); + } + } + } + global_stats.set_points(TIME_NEEDED_STAT, (tottime == 0 ? -1 : (tottime-remtime))); + if(sequencename == "fireworks") { currentsector->add_object(new Fireworks()); } @@ -823,5 +826,10 @@ GameSession::drawstatus(DrawingContext& context) context.draw_text(white_text, fpstext, Vector(SCREEN_WIDTH - white_text->get_text_width(fpstext) - gold_text->get_text_width(" 99999") - BORDER_X, BORDER_Y + 20), LEFT_ALLIGN, LAYER_FOREGROUND1); context.draw_text(gold_text, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y + 20), RIGHT_ALLIGN, LAYER_FOREGROUND1); } + + // draw level stats while end_sequence is running + if (end_sequence) { + global_stats.draw_endseq_panel(context, best_level_statistics, statistics_backdrop); + } } diff --git a/src/game_session.hpp b/src/game_session.hpp index 3b14707c7..6b7245082 100644 --- a/src/game_session.hpp +++ b/src/game_session.hpp @@ -28,6 +28,7 @@ #include "statistics.hpp" #include "math/vector.hpp" #include "console.hpp" +#include "video/surface.hpp" /* GameLoop modes */ enum GameSessionMode { @@ -113,6 +114,8 @@ private: Timer endsequence_timer; Level* level; + Surface* statistics_backdrop; // FIXME: where to put this? + Sector* currentsector; GameSessionMode mode; diff --git a/src/statistics.cpp b/src/statistics.cpp index 11c03b52d..920339267 100644 --- a/src/statistics.cpp +++ b/src/statistics.cpp @@ -203,6 +203,66 @@ Statistics::draw_message_info(DrawingContext& context, std::string title) } } +void +Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, Surface* backdrop) +{ + // abort if statistics are not yet initialized + if(stats[COINS_COLLECTED_STAT][SPLAYER] == -1) return; + + // abort if we have no backdrop + if (!backdrop) return; + + int box_w = 130+130+130; + int box_h = 30+20+20+20; + int box_x = (int)((SCREEN_WIDTH - box_w) / 2); + int box_y = (int)(SCREEN_HEIGHT / 2) - box_h; + + int bd_w = (int)backdrop->get_width(); + int bd_h = (int)backdrop->get_height(); + int bd_x = (int)((SCREEN_WIDTH - bd_w) / 2); + int bd_y = box_y + (box_h / 2) - (bd_h / 2); + + int col1_x = box_x; + int col2_x = col1_x+130; + int col3_x = col2_x+130; + + int row1_y = box_y; + int row2_y = row1_y+30; + int row3_y = row2_y+20; + int row4_y = row3_y+20; + + context.draw_surface(backdrop, Vector(bd_x, bd_y), LAYER_GUI); + + char buf[129]; + context.draw_text(white_text, "You", Vector(col2_x, row1_y), LEFT_ALLIGN, LAYER_GUI); + context.draw_text(white_text, "Best", Vector(col3_x, row1_y), LEFT_ALLIGN, LAYER_GUI); + + context.draw_text(white_text, "Coins", Vector(col1_x, row2_y), LEFT_ALLIGN, LAYER_GUI); + snprintf(buf, 128, "%d/%d", stats[COINS_COLLECTED_STAT][SPLAYER], stats[COINS_COLLECTED_STAT][STOTAL]); + context.draw_text(gold_text, buf, Vector(col2_x, row2_y), LEFT_ALLIGN, LAYER_GUI); + if (best_stats && (best_stats->stats[COINS_COLLECTED_STAT][SPLAYER] > stats[COINS_COLLECTED_STAT][SPLAYER])) { + snprintf(buf, 128, "%d/%d", best_stats->stats[COINS_COLLECTED_STAT][SPLAYER], best_stats->stats[COINS_COLLECTED_STAT][STOTAL]); + } + context.draw_text(gold_text, buf, Vector(col3_x, row2_y), LEFT_ALLIGN, LAYER_GUI); + + context.draw_text(white_text, "Time", Vector(col1_x, row3_y), LEFT_ALLIGN, LAYER_GUI); + snprintf(buf, 128, "%d:%02d", stats[TIME_NEEDED_STAT][SPLAYER] / 60, stats[TIME_NEEDED_STAT][SPLAYER] % 60); + context.draw_text(gold_text, buf, Vector(col2_x, row3_y), LEFT_ALLIGN, LAYER_GUI); + if (best_stats && (best_stats->stats[TIME_NEEDED_STAT][SPLAYER] < stats[TIME_NEEDED_STAT][SPLAYER])) { + snprintf(buf, 128, "%d:%02d", best_stats->stats[TIME_NEEDED_STAT][SPLAYER] / 60, best_stats->stats[TIME_NEEDED_STAT][SPLAYER] % 60); + } + context.draw_text(gold_text, buf, Vector(col3_x, row3_y), LEFT_ALLIGN, LAYER_GUI); + + context.draw_text(white_text, "Badguys", Vector(col1_x, row4_y), LEFT_ALLIGN, LAYER_GUI); + snprintf(buf, 128, "%d/%d", stats[BADGUYS_KILLED_STAT][SPLAYER], stats[BADGUYS_KILLED_STAT][STOTAL]); + context.draw_text(gold_text, buf, Vector(col2_x, row4_y), LEFT_ALLIGN, LAYER_GUI); + if (best_stats && (best_stats->stats[BADGUYS_KILLED_STAT][SPLAYER] > stats[BADGUYS_KILLED_STAT][SPLAYER])) { + snprintf(buf, 128, "%d/%d", best_stats->stats[BADGUYS_KILLED_STAT][SPLAYER], best_stats->stats[BADGUYS_KILLED_STAT][STOTAL]); + } + context.draw_text(gold_text, buf, Vector(col3_x, row4_y), LEFT_ALLIGN, LAYER_GUI); + +} + void Statistics::add_points(int stat, int points) { diff --git a/src/statistics.hpp b/src/statistics.hpp index 08488e673..02c0a5cf3 100644 --- a/src/statistics.hpp +++ b/src/statistics.hpp @@ -24,8 +24,8 @@ #include "timer.hpp" #include "lisp/lisp.hpp" #include "lisp/writer.hpp" - -class DrawingContext; +#include "video/surface.hpp" +#include "video/drawing_context.hpp" #define SPLAYER 0 #define STOTAL 1 @@ -58,6 +58,7 @@ public: // TODO: make this functions working void draw_worldmap_info(DrawingContext& context); void draw_message_info(DrawingContext& context, std::string title); + void draw_endseq_panel(DrawingContext& context, Statistics* best_stats, Surface* backdrop); /**< draw panel shown during level's end sequence */ /* Add / Set / Get points to/from one of the stats this can keep track of */ void add_points(int stat, int points); -- 2.11.0