highscore fixes

This commit is contained in:
2025-12-21 19:45:20 +01:00
parent 0b99911f5d
commit 50c869536d
7 changed files with 155 additions and 29 deletions

View File

@ -3,14 +3,16 @@
#include <vector>
#include <string>
struct ScoreEntry { int score{}; int lines{}; int level{}; double timeSec{}; std::string name{"PLAYER"}; };
struct ScoreEntry { int score{}; int lines{}; int level{}; double timeSec{}; std::string name{"PLAYER"}; std::string gameType{"classic"}; };
class ScoreManager {
public:
explicit ScoreManager(size_t maxScores = 12);
void load();
void save() const;
void submit(int score, int lines, int level, double timeSec, const std::string& name = "PLAYER");
// New optional `gameType` parameter will be sent to Firebase as `game_type`.
// Allowed values: "classic", "versus", "cooperate", "challenge".
void submit(int score, int lines, int level, double timeSec, const std::string& name = "PLAYER", const std::string& gameType = "classic");
bool isHighScore(int score) const;
const std::vector<ScoreEntry>& all() const { return scores; }
private: