#ifndef PLAYER_H #define PLAYER_H #include #include #include struct Player { int id; QString name; QColor primaryColor; QColor secondaryColor; // National resources (shared across all cities of this nation) int culture; int science; int gold; int faith; Player() : id(0), name("Unknown"), primaryColor(Qt::blue), secondaryColor(Qt::white), culture(10000), science(0), gold(0), faith(0) {} Player(int pId, const QString &pName, const QColor &primary, const QColor &secondary, int pCulture = 10000, int pScience = 0, int pGold = 0, int pFaith = 0) : id(pId), name(pName), primaryColor(primary), secondaryColor(secondary), culture(pCulture), science(pScience), gold(pGold), faith(pFaith) {} }; class PlayerManager { public: PlayerManager(); bool addPlayer(int id, const QString &name, const QColor &primary, const QColor &secondary); const Player* getPlayer(int id) const; Player* getPlayer(int id); const std::vector& getPlayers() const { return m_players; } std::vector& getPlayersMutable() { return m_players; } bool isCombinationUnique(const QColor &primary, const QColor &secondary, int excludeId = -1) const; private: std::vector m_players; }; #endif // PLAYER_H