Console hides immediately / Cleaned up controller hook
[supertux.git] / src / player_status.hpp
index 4ad7a68..29b8f83 100644 (file)
 #ifndef SUPERTUX_PLAYERSTATUS_H
 #define SUPERTUX_PLAYERSTATUS_H
 
+#include <assert.h>
 #include "lisp/lisp.hpp"
 #include "timer.hpp"
 #include "serializable.hpp"
+#include "sprite/sprite.hpp"
+
+static const float BORDER_X = 10;
+static const float BORDER_Y = 10;
 
 enum BonusType {
   NO_BONUS, GROWUP_BONUS, FIRE_BONUS, ICE_BONUS
@@ -36,24 +41,47 @@ class PlayerStatus : public Serializable
 {
 public:
   PlayerStatus();
+  ~PlayerStatus();
   void reset();     
   void incLives();
   void incCoins();
+  void set_keys(int new_key);
 
   void write(lisp::Writer& writer);
   void read(const lisp::Lisp& lisp);
 
   void draw(DrawingContext& context);
+  void draw_keys(DrawingContext& context);
 
   int  coins;
-  int  lives;
   BonusType bonus;
 
   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;
+  Sprite* key_iron;
+  Sprite* key_brass;
+  Sprite* key_bronze;
+  Sprite* key_silver;
+  Sprite* key_gold;
 };
 
 // global player state
-extern PlayerStatus player_status;
+extern PlayerStatus* player_status;
 
 #endif