Big CMakeLists update.
[supertux.git] / src / player_status.hpp
index 3df230b..520bd74 100644 (file)
 #ifndef SUPERTUX_PLAYERSTATUS_H
 #define SUPERTUX_PLAYERSTATUS_H
 
-#include <assert.h>
 #include <memory>
-#include "lisp/lisp.hpp"
-#include "timer.hpp"
 #include "serializable.hpp"
-#include "sprite/sprite.hpp"
-#include "console.hpp"
+#include "video/color.hpp"
+
+namespace lisp{ class Writer; }
+namespace lisp{ class Lisp; }
+class Surface;
 
 static const float BORDER_X = 10;
 static const float BORDER_Y = 10;
@@ -36,25 +36,24 @@ enum BonusType {
 };
 class DrawingContext;
 
-/** 
+/**
  * This class memorizes player status between different game sessions (for
  * example when switching maps in the worldmap)
  */
-class PlayerStatus : public Serializable, public ConsoleCommandReceiver
+class PlayerStatus : public Serializable
 {
+  static Color text_color;
 public:
   PlayerStatus();
   ~PlayerStatus();
-  void reset();     
-  void add_coins(int count);
+  void reset();
+  void add_coins(int count, bool play_sound = true);
 
   void write(lisp::Writer& writer);
   void read(const lisp::Lisp& lisp);
 
   void draw(DrawingContext& context);
 
-  bool consoleCommand(std::string command, std::vector<std::string> arguments); /**< callback from Console; return false if command was unknown, true otherwise */
-  
   int  coins;
   BonusType bonus;
   int max_fire_bullets; /**< maximum number of fire bullets in play */
@@ -64,12 +63,12 @@ public:
   int max_score_multiplier;
 
   void operator= (const PlayerStatus& other);
-  
+
 private:
   // don't use this
   PlayerStatus(const PlayerStatus& other);
-  
-  std::auto_ptr<Sprite> tux_life;
+
+  std::auto_ptr<Surface> coin_surface;
 };
 
 // global player state