X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FAccount.cpp;h=b3d42c7d320eb55bb120848428338baa45d7e719;hb=1991e81a5c3bcc9cd0d6d49f56ebd8bcbd76e7b4;hp=a42e2f70e8cf76e7857586d974e8756a19e838ae;hpb=cd043e3f9e26c2b3406b40a354c2840941e9db7f;p=lugaru.git diff --git a/Source/Account.cpp b/Source/Account.cpp index a42e2f7..b3d42c7 100644 --- a/Source/Account.cpp +++ b/Source/Account.cpp @@ -1,6 +1,6 @@ /* 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. @@ -23,6 +23,7 @@ along with Lugaru. If not, see . #include #include "MacCompatibility.h" #include "string.h" +#include using namespace std; @@ -30,9 +31,8 @@ extern bool debugmode; vector Account::accounts = vector(); -Account::Account(string n) : campaignProgress() +Account::Account(const string& name) : name(name), campaignProgress() { - name = string(n); difficulty = 0; progress = 0; points = 0; @@ -43,12 +43,12 @@ Account::Account(string n) : campaignProgress() setCurrentCampaign("main"); } -void Account::setCurrentCampaign(string name) +void Account::setCurrentCampaign(const string& name) { currentCampaign = name; } -Account* Account::add(string name) +Account* Account::add(const string& name) { accounts.push_back(new Account(name)); return accounts.back(); @@ -75,7 +75,7 @@ Account* Account::destroy(Account* a) return NULL; } } - printf("Unexpected error : User %s not found\n", a->getName()); + printf("Unexpected error : User %s not found\n", a->getName().c_str()); return accounts.front(); } @@ -115,8 +115,9 @@ Account* Account::loadFile(string filename) FILE *tfile; int numaccounts; int accountactive; + errno = 0; - tfile = fopen(ConvertFileName(filename.c_str()), "rb" ); + tfile = fopen(filename.c_str(), "rb" ); if (tfile) { funpackf(tfile, "Bi", &numaccounts); @@ -129,7 +130,6 @@ Account* Account::loadFile(string filename) funpackf(tfile, "Bi", &(acc->progress)); int nbCampaigns; funpackf(tfile, "Bi", &nbCampaigns); - //~ printf("loading %d campaign progress info\n",nbCampaigns); for (int k = 0; k < nbCampaigns; ++k) { string campaignName = ""; @@ -140,7 +140,6 @@ Account* Account::loadFile(string filename) funpackf(tfile, "Bb", &c); campaignName.append(1, c); } - //~ printf("loading %s campaign progress info\n",campaignName.c_str()); funpackf(tfile, "Bf", &(acc->campaignProgress[campaignName].time)); funpackf(tfile, "Bf", &(acc->campaignProgress[campaignName].score)); funpackf(tfile, "Bf", &(acc->campaignProgress[campaignName].fasttime)); @@ -188,7 +187,7 @@ Account* Account::loadFile(string filename) fclose(tfile); return get(accountactive); } else { - printf("filenotfound\n"); + perror(("Couldn't load users from " + filename).c_str()); return NULL; } } @@ -196,25 +195,24 @@ Account* Account::loadFile(string filename) void Account::saveFile(string filename, Account* accountactive) { FILE *tfile; - unsigned j; + errno = 0; - tfile = fopen(ConvertFileName(filename.c_str(), "wb"), "wb" ); + tfile = fopen(filename.c_str(), "wb" ); if (tfile) { - printf("writing %d accounts :\n", getNbAccounts()); fpackf(tfile, "Bi", getNbAccounts()); fpackf(tfile, "Bi", indice(accountactive)); for (int i = 0; i < getNbAccounts(); i++) { Account* a = Account::get(i); - printf("writing account %d/%d (%s)\n", i + 1, getNbAccounts(), a->getName()); + printf("writing account %d/%d (%s)\n", i + 1, getNbAccounts(), a->getName().c_str()); fpackf(tfile, "Bi", a->difficulty); fpackf(tfile, "Bi", a->progress); fpackf(tfile, "Bi", a->campaignProgress.size()); map::const_iterator it; - for ( it = a->campaignProgress.begin(); it != a->campaignProgress.end(); ++it) { + for (it = a->campaignProgress.begin(); it != a->campaignProgress.end(); ++it) { fpackf(tfile, "Bi", it->first.size()); - for (j = 0; j < it->first.size(); j++) { + for (unsigned j = 0; j < it->first.size(); j++) { fpackf(tfile, "Bb", it->first[j]); } fpackf(tfile, "Bf", it->second.time); @@ -222,31 +220,33 @@ void Account::saveFile(string filename, Account* accountactive) fpackf(tfile, "Bf", it->second.fasttime); fpackf(tfile, "Bf", it->second.highscore); fpackf(tfile, "Bi", it->second.choices.size()); - for (j = 0; j < it->second.choices.size(); j++) { + for (unsigned j = 0; j < it->second.choices.size(); j++) { fpackf(tfile, "Bi", it->second.choices[j]); } } fpackf(tfile, "Bi", a->getCurrentCampaign().size()); - for (j = 0; j < a->getCurrentCampaign().size(); j++) { + for (unsigned j = 0; j < a->getCurrentCampaign().size(); j++) { fpackf(tfile, "Bb", a->getCurrentCampaign()[j]); } fpackf(tfile, "Bf", a->points); - for (j = 0; j < 50; j++) { + for (unsigned j = 0; j < 50; j++) { fpackf(tfile, "Bf", a->highscore[j]); fpackf(tfile, "Bf", a->fasttime[j]); } - for (j = 0; j < 60; j++) { + for (unsigned j = 0; j < 60; j++) { fpackf(tfile, "Bb", a->unlocked[j]); } fpackf(tfile, "Bi", a->name.size()); - for (j = 0; j < a->name.size(); j++) { + for (unsigned j = 0; j < a->name.size(); j++) { fpackf(tfile, "Bb", a->name[j]); } } fclose(tfile); + } else { + perror(("Couldn't save users in " + filename).c_str()); } }