#include "util/reader_fwd.hpp"
#include "util/writer_fwd.hpp"
#include "video/color.hpp"
-
-class Surface;
+#include "video/surface_ptr.hpp"
static const float BORDER_X = 10;
static const float BORDER_Y = 10;
enum BonusType {
- NO_BONUS, GROWUP_BONUS, FIRE_BONUS, ICE_BONUS
+ NO_BONUS, GROWUP_BONUS, FIRE_BONUS, ICE_BONUS, AIR_BONUS, EARTH_BONUS
};
class DrawingContext;
/**
- * This class memorizes player status between different game sessions (for
+ * This class keeps player status between different game sessions (for
* example when switching maps in the worldmap)
*/
class PlayerStatus
void reset();
void add_coins(int count, bool play_sound = true);
- void write(lisp::Writer& writer);
+ void write(Writer& writer);
void read(const Reader& lisp);
void draw(DrawingContext& context);
+public:
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 */
-
- void operator= (const PlayerStatus& other);
+ int max_air_time; /**<determines maximum number of seconds player can float in air */
+ int max_earth_time; /**< determines maximum number of seconds player can turn to stone */
private:
- // don't use this
- PlayerStatus(const PlayerStatus& other);
+ int displayed_coins;
+ int displayed_coins_frame;
+ SurfacePtr coin_surface;
- std::auto_ptr<Surface> coin_surface;
+private:
+ PlayerStatus(const PlayerStatus&);
+ PlayerStatus& operator=(const PlayerStatus&);
};
-// global player state
-extern PlayerStatus* player_status;
-
#endif
/* EOF */