#ifndef SUPERTUX_STATISTICS_H
#define SUPERTUX_STATISTICS_H
-#include "timer.hpp"
+#include <squirrel.h>
namespace lisp { class Writer; }
namespace lisp { class Lisp; }
~Statistics();
/// read statistics from lisp file
- void parse(const lisp::Lisp& lisp);
+ //void parse(const lisp::Lisp& lisp);
/// write statistics to lisp file
- void write(lisp::Writer& writer);
+ //void write(lisp::Writer& writer);
+
+ /**
+ * serialize statistics object as squirrel table "statistics"
+ */
+ void serialize_to_squirrel(HSQUIRRELVM vm);
+
+ /**
+ * unserialize statistics object from squirrel table "statistics"
+ */
+ void unserialize_from_squirrel(HSQUIRRELVM vm);
void draw_worldmap_info(DrawingContext& context); /**< draw worldmap stat HUD */
void draw_message_info(DrawingContext& context, std::string title); /**< draw stats at level start */
void draw_endseq_panel(DrawingContext& context, Statistics* best_stats, Surface* backdrop); /**< draw panel shown during level's end sequence */
+ void zero(); /**< Set stats to zero */
void reset(); /**< Set stats (but not totals) to zero */
void merge(Statistics& stats); /**< Given another Statistics object finds the best of each one */
void operator+=(const Statistics& o); /**< Add two Statistics objects */
private:
bool valid; /**< stores whether this statistics can be trusted */
- Timer timer; /**< for draw_worldmap_info: time until switching to next stat */
- int display_stat; /**< for draw_worldmap_info: which stat is currently displayed */
+
+ std::string coins_to_string(int coins, int total_coins) const;
+ std::string frags_to_string(int badguys, int total_badguys) const;
+ std::string time_to_string(float time) const;
+ std::string secrets_to_string(int secrets, int total_secrets) const;
};
#endif /*SUPERTUX_STATISTICS_H*/