Hide stats on levels that have none
authorLMH <lmh.0013@gmail.com>
Fri, 6 Sep 2013 01:38:43 +0000 (15:38 -1000)
committerLMH <lmh.0013@gmail.com>
Fri, 6 Sep 2013 01:38:43 +0000 (15:38 -1000)
src/supertux/game_session.cpp
src/supertux/statistics.cpp

index f14138c..c338d16 100644 (file)
@@ -421,7 +421,8 @@ GameSession::setup()
   while(SDL_PollEvent(&event))
   {}
 
-  if (!levelintro_shown) {
+  int total_stats_to_be_collected = level->stats.total_coins + level->stats.total_badguys + level->stats.total_secrets;
+  if ((!levelintro_shown) && (total_stats_to_be_collected > 0)) {
     levelintro_shown = true;
     g_screen_manager->push_screen(new LevelIntro(level.get(), best_level_statistics));
   }
index da9ffb1..0dd695d 100644 (file)
@@ -103,6 +103,9 @@ Statistics::draw_worldmap_info(DrawingContext& context)
   // skip draw if stats were declared invalid
   if (!valid) return;
 
+  // no sense drawing stats if there are none
+  if (total_coins + total_badguys + total_secrets == 0) return;
+
   // check to see if screen size has been changed
   if (!(WMAP_INFO_TOP_Y1 == SCREEN_HEIGHT - 100)) {
     WMAP_INFO_LEFT_X = SCREEN_WIDTH - 32 - 256;
@@ -158,6 +161,9 @@ Statistics::draw_endseq_panel(DrawingContext& context, Statistics* best_stats, S
   // abort if we have no backdrop
   if (!backdrop) return;
 
+  // no sense drawing stats if there are none
+  if (total_coins + total_badguys + total_secrets == 0) return;
+
   int box_w = 220+110+110;
   int box_h = 30+20+20+20;
   int box_x = (int)((SCREEN_WIDTH - box_w) / 2);