]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Account.cpp
merge
[lugaru.git] / Source / Account.cpp
index d601c4ac64a4ded51ea548d0c95a611fd7120cc1..145dea1bdf9cc7ee1dfef1c0f037780637f52dd6 100644 (file)
@@ -1,6 +1,6 @@
 /*
 Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010 - MCMic
+Copyright (C) 2010 - Côme <MCMic> BERNIGAUD
 
 This file is part of Lugaru.
 
@@ -44,8 +44,6 @@ Account::Account(string n) {
        campaignfasttime = 0;
        campaignscore = 0;
        campaigntime = 0;
-       campaignchoicesmade = 0;
-       memset(campaignchoices, 0, sizeof(campaignchoices));
 }
 
 Account* Account::add(string name) {
@@ -54,7 +52,8 @@ Account* Account::add(string name) {
 }
 
 Account* Account::get(int i) {
-       if(i<accounts.size()) {
+       
+       if((i>=0)&&(i<accounts.size())) {
                return accounts[i];
        } else
                return NULL;
@@ -79,13 +78,13 @@ int Account::getDifficulty() {
 }
 
 void Account::endGame() {
-       campaignchoicesmade=0;
+       campaignchoices.clear();
        campaignscore=0;
        campaigntime=0;
 }
 
 void Account::winCampaignLevel(int choice, float score, float time) {
-       campaignchoices[campaignchoicesmade++] = choice;
+       campaignchoices.push_back(choice);
        setCampaignScore(campaignscore+score);
        campaigntime = time;
 }
@@ -124,14 +123,16 @@ Account* Account::loadFile(string filename) {
                        funpackf(tfile, "Bf", &(acc->campaignhighscore));
                        funpackf(tfile, "Bi", &(acc->difficulty));
                        funpackf(tfile, "Bi", &(acc->progress));
-                       funpackf(tfile, "Bi", &(acc->campaignchoicesmade));
-                       for(j=0;j<acc->campaignchoicesmade;j++)
+                       int campaignchoicesmade,campaignchoice;
+                       funpackf(tfile, "Bi", &campaignchoicesmade);
+                       for(j=0;j<campaignchoicesmade;j++)
                        {
-                               funpackf(tfile, "Bi", &(acc->campaignchoices[j]));
-                               if (acc->campaignchoices[j] >= 10)
+                               funpackf(tfile, "Bi", &campaignchoice);
+                               if (campaignchoice >= 10) // what is that for?
                                {
-                                       acc->campaignchoices[j] = 0;
+                                       campaignchoice = 0;
                                }
+                               acc->campaignchoices.push_back(campaignchoice);
                        }
                        funpackf(tfile, "Bf", &(acc->points));
                        for(j=0;j<50;j++)
@@ -166,7 +167,6 @@ Account* Account::loadFile(string filename) {
 
 void Account::saveFile(string filename, Account* accountactive) {
        FILE *tfile;
-       int numaccounts;
        int j;
        
        tfile=fopen(ConvertFileName(filename.c_str(), "wb"), "wb" );
@@ -186,8 +186,8 @@ void Account::saveFile(string filename, Account* accountactive) {
                        fpackf(tfile, "Bf", a->campaignhighscore);
                        fpackf(tfile, "Bi", a->difficulty);
                        fpackf(tfile, "Bi", a->progress);
-                       fpackf(tfile, "Bi", a->campaignchoicesmade);
-                       for(j=0;j<a->campaignchoicesmade;j++)
+                       fpackf(tfile, "Bi", a->getCampaignChoicesMade());
+                       for(j=0;j<a->getCampaignChoicesMade();j++)
                        {
                                fpackf(tfile, "Bi", a->campaignchoices[j]);
                        }