]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Account.h
Stopped using Account pointers, and removed general difficulty setting (difficulty...
[lugaru.git] / Source / Account.h
index b9d24832b1f8e0579490026804d74a5695ce11e9..385c6fa5fb42aea59e9015a82a691c8518be53b5 100644 (file)
@@ -43,13 +43,19 @@ struct CampaignProgress {
 class Account
 {
 public:
-    static void destroy(int i);
-    static Account* destroy(Account* a);
-    static Account* add(const std::string& name);
-    static Account* get(int i);
-    static Account* loadFile(std::string filename);
-    static void saveFile(std::string filename, Account* accountactive);
-    static int indice(Account* a);
+    static void destroyActive();
+    static void setActive(int i);
+    static void add(const std::string& name);
+    static Account& get(int i);
+    static void loadFile(std::string filename);
+    static void saveFile(std::string filename);
+    static int getNbAccounts();
+
+    static bool hasActive();
+    static Account& active();
+
+    Account(const std::string& name = "");
+    Account(FILE* tfile);
 
     void endGame();
     void winCampaignLevel(int choice, float score, float time);
@@ -60,8 +66,8 @@ public:
     void setDifficulty(int i) {
         difficulty = i;
     };
-    const char* getName() {
-        return name.c_str();
+    const std::string& getName() {
+        return name;
     };
     float getCampaignScore() {
         return campaignProgress[currentCampaign].score;
@@ -105,11 +111,13 @@ public:
     };
     void setCurrentCampaign(const std::string& name);
 
-    static int getNbAccounts() {
-        return accounts.size();
-    };
 private:
-    Account(const std::string& name = "");
+    //statics
+    static std::vector<Account> accounts;
+    static int i_active;
+
+    void save(FILE* tfile);
+
     int difficulty;
     int progress; // progress in challenge levels
     float points;
@@ -120,9 +128,6 @@ private:
 
     std::string currentCampaign;
     std::map<std::string, CampaignProgress> campaignProgress;
-
-    //statics
-    static std::vector<Account*> accounts;
 };
 
 #endif