X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FAccount.h;h=385c6fa5fb42aea59e9015a82a691c8518be53b5;hb=bdabd9d4a53be2fa9d90f900f7e5949d2f0ef75c;hp=b937dd7f67b8c84f996b0e4f2f9ce06ca5e4550f;hpb=24004d6ab1e68faaf85ece11b566449997da5013;p=lugaru.git diff --git a/Source/Account.h b/Source/Account.h index b937dd7..385c6fa 100644 --- a/Source/Account.h +++ b/Source/Account.h @@ -1,23 +1,21 @@ /* Copyright (C) 2003, 2010 - Wolfire Games -Copyright (C) 2010 - Côme BERNIGAUD +Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. -Lugaru is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +Lugaru is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. -This program is distributed in the hope that it will be useful, +Lugaru is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - -See the GNU General Public License for more details. +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with Lugaru. If not, see . */ #ifndef _Account_H_ @@ -45,13 +43,19 @@ struct CampaignProgress { class Account { public: - static void destroy(int i); - static Account* destroy(Account* a); - static Account* add(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); @@ -62,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; @@ -81,7 +85,7 @@ public: }; void setCampaignFinalTime(float t) { campaignProgress[currentCampaign].time = t; - if ((t < campaignProgress[currentCampaign].fasttime) || (campaignProgress[currentCampaign].fasttime == 0) && (t != 0)) + if ((t < campaignProgress[currentCampaign].fasttime) || ((campaignProgress[currentCampaign].fasttime == 0) && (t != 0))) campaignProgress[currentCampaign].fasttime = t; }; float getCampaignFasttime() { @@ -105,13 +109,15 @@ public: std::string getCurrentCampaign() { return currentCampaign; }; - void setCurrentCampaign(std::string name); + void setCurrentCampaign(const std::string& name); - static int getNbAccounts() { - return accounts.size(); - }; private: - Account(std::string n = ""); + //statics + static std::vector accounts; + static int i_active; + + void save(FILE* tfile); + int difficulty; int progress; // progress in challenge levels float points; @@ -122,9 +128,6 @@ private: std::string currentCampaign; std::map campaignProgress; - - //statics - static std::vector accounts; }; #endif