]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Menu.cpp
Stopped using Account pointers, and removed general difficulty setting (difficulty...
[lugaru.git] / Source / Menu.cpp
index d3c9b0d35c3d1dbb2b02c98e027c7e4dca84d507..f1fb94f5021e904476be8a4e129e25656086c046 100644 (file)
@@ -294,9 +294,6 @@ void Menu::updateSettingsMenu()
     if (bloodtoggle == 0) setText(2, "Blood: Off");
     if (bloodtoggle == 1) setText(2, "Blood: On, low detail");
     if (bloodtoggle == 2) setText(2, "Blood: On, high detail (slower)");
-    if (difficulty == 0) setText(3, "Difficulty: Easier");
-    if (difficulty == 1) setText(3, "Difficulty: Difficult");
-    if (difficulty == 2) setText(3, "Difficulty: Insane");
     setText(4, ismotionblur ? "Blur Effects: Enabled (less compatible)" : "Blur Effects: Disabled (more compatible)");
     setText(5, decals ? "Decals: Enabled (slower)" : "Decals: Disabled");
     setText(6, musictoggle ? "Music: Enabled" : "Music: Disabled");
@@ -366,7 +363,6 @@ void Menu::Load()
         addButton(14, "", 10 + 400, 440);
         addButton( 1, "", 10 + 60, 405);
         addButton( 2, "", 10 + 70, 370);
-        addButton( 3, "", 10 + 20 - 1000, 335 - 1000);
         addButton( 4, "", 10   , 335);
         addButton( 5, "", 10 + 60, 300);
         addButton( 6, "", 10 + 70, 265);
@@ -397,26 +393,27 @@ void Menu::Load()
         break;
     case 5: {
         LoadCampaign();
-        addLabel(-1, Account::active->getName(), 5, 400);
+        addLabel(-1, Account::active().getName(), 5, 400);
         addButton(1, "Tutorial", 5, 300);
         addButton(2, "Challenge", 5, 240);
         addButton(3, "Delete User", 400, 10);
         addButton(4, "Main Menu", 5, 10);
         addButton(5, "Change User", 5, 180);
-        addButton(6, "Campaign : " + Account::active->getCurrentCampaign(), 200, 420);
+        addButton(6, "Campaign : " + Account::active().getCurrentCampaign(), 200, 420);
 
         //show campaign map
         //with (2,-5) offset from old code
         addImage(-1, Mainmenuitems[7], 150 + 2, 60 - 5, 400, 400);
         //show levels
-        int numlevels = Account::active->getCampaignChoicesMade();
+        int numlevels = Account::active().getCampaignChoicesMade();
         numlevels += numlevels > 0 ? campaignlevels[numlevels - 1].nextlevel.size() : 1;
         for (int i = 0; i < numlevels; i++) {
             XYZ midpoint = campaignlevels[i].getCenter();
             float itemsize = campaignlevels[i].getWidth();
-            const bool active = i >= Account::active->getCampaignChoicesMade();
-            if (!active)
+            const bool active = (i >= Account::active().getCampaignChoicesMade());
+            if (!active) {
                 itemsize /= 2;
+            }
 
             if (i >= 1) {
                 XYZ start = campaignlevels[i - 1].getCenter();
@@ -445,8 +442,9 @@ void Menu::Load()
             addLabel(0, "No More Users", 10, 400);
         addLabel(-2, "", 20, 400);
         addButton(Account::getNbAccounts() + 1, "Back", 10, 10);
-        for (int i = 0; i < Account::getNbAccounts(); i++)
-            addButton(i + 1, Account::get(i)->getName(), 10, 340 - 20 * (i + 1));
+        for (int i = 0; i < Account::getNbAccounts(); i++) {
+            addButton(i + 1, Account::get(i).getName(), 10, 340 - 20 * (i + 1));
+        }
         break;
     case 8:
         addButton(0, "Easier", 10, 400);
@@ -460,18 +458,18 @@ void Menu::Load()
             if (name.size() < 17) {
                 name.append((17 - name.size()), ' ');
             }
-            name += to_string(int(Account::active->getHighScore(i)));
+            name += to_string(int(Account::active().getHighScore(i)));
             if (name.size() < 32) {
                 name.append((32 - name.size()), ' ');
             }
-            int fasttime = (int)round(Account::active->getFastTime(i));
+            int fasttime = (int)round(Account::active().getFastTime(i));
             name += to_string(int((fasttime - fasttime % 60) / 60));
             name += ":";
             if (fasttime % 60 < 10)
                 name += "0";
             name += to_string(fasttime % 60);
 
-            addButton(i, name, 10, 400 - i * 25, i > Account::active->getProgress() ? 0.5 : 1, 0, 0);
+            addButton(i, name, 10, 400 - i * 25, i > Account::active().getProgress() ? 0.5 : 1, 0, 0);
         }
 
         addButton(-1, "             High Score      Best Time", 10, 440);
@@ -482,8 +480,8 @@ void Menu::Load()
         addLabel(1, "You have avenged your family and", 140, 300);
         addLabel(2, "restored peace to the island of Lugaru.", 110, 270);
         addButton(3, "Back", 10, 10);
-        addLabel(4, string("Your score:         ") + to_string((int)Account::active->getCampaignScore()), 190, 200);
-        addLabel(5, string("Highest score:      ") + to_string((int)Account::active->getCampaignHighScore()), 190, 180);
+        addLabel(4, string("Your score:         ") + to_string((int)Account::active().getCampaignScore()), 190, 200);
+        addLabel(5, string("Highest score:      ") + to_string((int)Account::active().getCampaignHighScore()), 190, 180);
     }
     break;
     case 18:
@@ -535,7 +533,7 @@ void Menu::Tick()
 
     // some specific case where we do something even if the left mouse button is not pressed.
     if ((mainmenu == 5) && (endgame == 2)) {
-        Account::active->endGame();
+        Account::active().endGame();
         endgame = 0;
     }
     if (mainmenu == 10)
@@ -561,7 +559,7 @@ void Menu::Tick()
                 } else { //new game
                     fireSound(firestartsound);
                     flash();
-                    mainmenu = (Account::active ? 5 : 7);
+                    mainmenu = (Account::hasActive() ? 5 : 7);
                     selected = -1;
                 }
                 break;
@@ -619,11 +617,6 @@ void Menu::Tick()
                 if (bloodtoggle > 2)
                     bloodtoggle = 0;
                 break;
-            case 3:
-                difficulty++;
-                if (difficulty > 2)
-                    difficulty = 0;
-                break;
             case 4:
                 ismotionblur = !ismotionblur;
                 break;
@@ -702,7 +695,7 @@ void Menu::Tick()
         case 5:
             fireSound();
             flash();
-            if ((selected - NB_CAMPAIGN_MENU_ITEM >= Account::active->getCampaignChoicesMade())) {
+            if ((selected - NB_CAMPAIGN_MENU_ITEM >= Account::active().getCampaignChoicesMade())) {
                 startbonustotal = 0;
 
                 loading = 2;
@@ -712,8 +705,8 @@ void Menu::Tick()
                     TickOnceAfter();
                 else
                     LoadStuff();
-                whichchoice = selected - NB_CAMPAIGN_MENU_ITEM - Account::active->getCampaignChoicesMade();
-                actuallevel = (Account::active->getCampaignChoicesMade() > 0 ? campaignlevels[Account::active->getCampaignChoicesMade() - 1].nextlevel[whichchoice] : 0);
+                whichchoice = selected - NB_CAMPAIGN_MENU_ITEM - Account::active().getCampaignChoicesMade();
+                actuallevel = (Account::active().getCampaignChoicesMade() > 0 ? campaignlevels[Account::active().getCampaignChoicesMade() - 1].nextlevel[whichchoice] : 0);
                 visibleloading = 1;
                 stillloading = 1;
                 Loadlevel(campaignlevels[actuallevel].mapname.c_str());
@@ -754,14 +747,14 @@ void Menu::Tick()
             case 6:
                 vector<string> campaigns = ListCampaigns();
                 vector<string>::iterator c;
-                if ((c = find(campaigns.begin(), campaigns.end(), Account::active->getCurrentCampaign())) == campaigns.end()) {
+                if ((c = find(campaigns.begin(), campaigns.end(), Account::active().getCurrentCampaign())) == campaigns.end()) {
                     if (!campaigns.empty())
-                        Account::active->setCurrentCampaign(campaigns.front());
+                        Account::active().setCurrentCampaign(campaigns.front());
                 } else {
                     c++;
                     if (c == campaigns.end())
                         c = campaigns.begin();
-                    Account::active->setCurrentCampaign(*c);
+                    Account::active().setCurrentCampaign(*c);
                 }
                 Load();
                 break;
@@ -771,7 +764,7 @@ void Menu::Tick()
             fireSound();
             if (selected == 1) {
                 flash();
-                Account::active = Account::destroy(Account::active);
+                Account::destroyActive();
                 mainmenu = 7;
             } else if (selected == 2) {
                 flash();
@@ -785,13 +778,14 @@ void Menu::Tick()
             } else if (selected < Account::getNbAccounts() + 1) {
                 flash();
                 mainmenu = 5;
-                Account::active = Account::get(selected - 1);
+                Account::setActive(selected - 1);
             } else if (selected == Account::getNbAccounts() + 1) {
                 flash();
-                if (Account::active)
+                if (Account::hasActive()) {
                     mainmenu = 5;
-                else
+                } else {
                     mainmenu = 1;
+                }
                 displaytext[0].clear();
                 displayselected = 0;
                 entername = 0;
@@ -801,11 +795,11 @@ void Menu::Tick()
             fireSound();
             flash();
             if (selected <= 2)
-                Account::active->setDifficulty(selected);
+                Account::active().setDifficulty(selected);
             mainmenu = 5;
             break;
         case 9:
-            if (selected < numchallengelevels && selected <= Account::active->getProgress()) {
+            if (selected < numchallengelevels && selected <= Account::active().getProgress()) {
                 fireSound();
                 flash();
 
@@ -872,7 +866,7 @@ void Menu::Tick()
         inputText(displaytext[0], &displayselected);
         if (!waiting) { // the input as finished
             if (!displaytext[0].empty()) { // with enter
-                Account::active = Account::add(string(displaytext[0]));
+                Account::add(string(displaytext[0]));
 
                 mainmenu = 8;