* Comment out resizable flag because it blue-screens on Windows
[supertux.git] / src / player_status.hpp
index 0e768ae..1840ab8 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,57 +36,36 @@ 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 set_keys(int new_key);
+  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);
-  void draw_keys(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 */
   int max_ice_bullets; /**< maximum number of ice bullets in play */
 
-  int score_multiplier;
-  int max_score_multiplier;
-
   void operator= (const PlayerStatus& other);
-  
-  enum {
-    KEY_BRASS  = 0x001,
-    KEY_IRON   = 0x002,
-    KEY_BRONZE = 0x004,
-    KEY_SILVER = 0x008,
-    KEY_GOLD   = 0x010,
-  };
 
 private:
   // don't use this
   PlayerStatus(const PlayerStatus& other);
-  
-  int keys;
 
-  std::auto_ptr<Sprite> tux_life;
-  std::auto_ptr<Sprite> key_iron;
-  std::auto_ptr<Sprite> key_brass;
-  std::auto_ptr<Sprite> key_bronze;
-  std::auto_ptr<Sprite> key_silver;
-  std::auto_ptr<Sprite> key_gold;
+  std::auto_ptr<Surface> coin_surface;
 };
 
 // global player state