/*
Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010 - Côme <MCMic> 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 <http://www.gnu.org/licenses/>.
*/
#ifndef _Account_H_
class Account
{
public:
- static void destroy(int i);
- static Account* destroy(Account* a);
- static Account* add(std::string name);
+ static void destroyActive();
+ static void setActive(int i);
+ static void 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 void loadFile(std::string filename);
+ static void saveFile(std::string filename);
static int indice(Account* a);
+ static bool hasActive() { return (_active != nullptr); }
+ static Account& active() { return *_active; }
+ static Account* _active;
+
void endGame();
void winCampaignLevel(int choice, float score, float time);
void winLevel(int level, float score, float time);
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;
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 = "");
+ Account(const std::string& name = "");
int difficulty;
int progress; // progress in challenge levels
float points;