Multi-coin bonus block (not bricks) handeled correctly in level stats
authorLMH <lmh.0013@gmail.com>
Fri, 23 Nov 2012 12:18:16 +0000 (02:18 -1000)
committerLMH <lmh.0013@gmail.com>
Fri, 23 Nov 2012 13:38:13 +0000 (03:38 -1000)
data/levels/test/bonusblock.stl
src/object/bonus_block.cpp
src/object/bonus_block.hpp
src/supertux/level.cpp

index 8fe206c..44cf5f0 100755 (executable)
@@ -37,8 +37,8 @@
 0      0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       ;       608
 0      0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       ;       640
 0      0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       ;       672
-0      0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       ;       704
-8      8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8             8       ;       736
+0      0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       0       132     0       ;       704
+8      8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       8       48      8       ;       736
 14     14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      14      ;       768
 11     11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      ;       800
 11     11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      11      ;       832
index c0322e7..3a2596f 100644 (file)
@@ -182,7 +182,8 @@ BonusBlock::try_open(Player *player)
     {
       Sector::current()->add_object(new BouncyCoin(get_pos(), true));
       player->get_status()->add_coins(1);
-      Sector::current()->get_level()->stats.coins++;
+      if (hit_counter != 0)
+        Sector::current()->get_level()->stats.coins++;
       break;
     }
 
index fd248f1..d8798b3 100644 (file)
@@ -45,11 +45,11 @@ protected:
 public:
   Contents contents;
   MovingObject* object;
+  int hit_counter;
 
 private:
   BonusBlock(const BonusBlock&);
   BonusBlock& operator=(const BonusBlock&);
-  int hit_counter;
   std::string sprite_name;
   std::string script;
 };
index e9d6e08..3b70d65 100644 (file)
@@ -201,7 +201,7 @@ Level::get_total_coins()
       {
         if (block->contents == BonusBlock::CONTENT_COIN)
         {
-          total_coins++;
+          total_coins += block->hit_counter;
           continue;
         }
 #if 0