X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMenu.cpp;h=f1fb94f5021e904476be8a4e129e25656086c046;hb=bdabd9d4a53be2fa9d90f900f7e5949d2f0ef75c;hp=af6fe29889f71cc158ac6257b4b890c68d06df39;hpb=2b4a9af9f7693a7715ae77f491157baac7257b10;p=lugaru.git diff --git a/Source/Menu.cpp b/Source/Menu.cpp index af6fe29..f1fb94f 100644 --- a/Source/Menu.cpp +++ b/Source/Menu.cpp @@ -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, accountactive->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 : " + accountactive->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 = accountactive->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 >= accountactive->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(accountactive->getHighScore(i))); + name += to_string(int(Account::active().getHighScore(i))); if (name.size() < 32) { name.append((32 - name.size()), ' '); } - int fasttime = (int)round(accountactive->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 > accountactive->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)accountactive->getCampaignScore()), 190, 200); - addLabel(5, string("Highest score: ") + to_string((int)accountactive->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)) { - accountactive->endGame(); + Account::active().endGame(); endgame = 0; } if (mainmenu == 10) @@ -561,7 +559,7 @@ void Menu::Tick() } else { //new game fireSound(firestartsound); flash(); - mainmenu = (accountactive ? 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 >= accountactive->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 - accountactive->getCampaignChoicesMade(); - actuallevel = (accountactive->getCampaignChoicesMade() > 0 ? campaignlevels[accountactive->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 campaigns = ListCampaigns(); vector::iterator c; - if ((c = find(campaigns.begin(), campaigns.end(), accountactive->getCurrentCampaign())) == campaigns.end()) { + if ((c = find(campaigns.begin(), campaigns.end(), Account::active().getCurrentCampaign())) == campaigns.end()) { if (!campaigns.empty()) - accountactive->setCurrentCampaign(campaigns.front()); + Account::active().setCurrentCampaign(campaigns.front()); } else { c++; if (c == campaigns.end()) c = campaigns.begin(); - accountactive->setCurrentCampaign(*c); + Account::active().setCurrentCampaign(*c); } Load(); break; @@ -771,7 +764,7 @@ void Menu::Tick() fireSound(); if (selected == 1) { flash(); - accountactive = Account::destroy(accountactive); + 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; - accountactive = Account::get(selected - 1); + Account::setActive(selected - 1); } else if (selected == Account::getNbAccounts() + 1) { flash(); - if (accountactive) + 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) - accountactive->setDifficulty(selected); + Account::active().setDifficulty(selected); mainmenu = 5; break; case 9: - if (selected < numchallengelevels && selected <= accountactive->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 - accountactive = Account::add(string(displaytext[0])); + Account::add(string(displaytext[0])); mainmenu = 8;