X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FMenu%2FMenu.cpp;h=91dd2ed7efa6c0336062989809d964ccb38c5691;hb=eae73ddd7a006ee6de9ffb01f3ec5f8e5fdc6d85;hp=7d8bce8dfdac5b83c44ff0aa1784c0f8f93c2961;hpb=ed3662c0852c4312a612b4fc35bd03aba8d13db7;p=lugaru.git diff --git a/Source/Menu/Menu.cpp b/Source/Menu/Menu.cpp index 7d8bce8..91dd2ed 100644 --- a/Source/Menu/Menu.cpp +++ b/Source/Menu/Menu.cpp @@ -49,6 +49,10 @@ extern int leveltheme; extern void toggleFullscreen(); int entername = 0; +std::string newusername = ""; +unsigned newuserselected = 0; +float newuserblinkdelay = 0; +bool newuserblink = false; std::vector Menu::items; @@ -141,7 +145,7 @@ void Menu::setText(int id, const string& text, int x, int y, int w, int h) int Menu::getSelected(int mousex, int mousey) { - for (vector::iterator it = items.begin(); it != items.end(); it++) + for (vector::reverse_iterator it = items.rbegin(); it != items.rend(); it++) if (it->type == MenuItem::BUTTON || it->type == MenuItem::IMAGEBUTTON || it->type == MenuItem::MAPMARKER) { int mx = mousex; int my = mousey; @@ -239,7 +243,7 @@ void Menu::drawItems() } break; case MenuItem::MAPLABEL: - Game::text->glPrintOutlined(0.9, 0, 0, it->x, it->y, it->text.c_str(), 0, 0.6, 640, 480); + Game::text->glPrintOutlined(0.9, 0, 0, 1, it->x, it->y, it->text.c_str(), 0, 0.6, 640, 480); break; case MenuItem::MAPLINE: { XYZ linestart; @@ -296,7 +300,7 @@ void Menu::updateSettingsMenu() if (bloodtoggle == 1) setText(2, "Blood: On, low detail"); if (bloodtoggle == 2) setText(2, "Blood: On, high detail (slower)"); setText(4, ismotionblur ? "Blur Effects: Enabled (less compatible)" : "Blur Effects: Disabled (more compatible)"); - setText(5, decals ? "Decals: Enabled (slower)" : "Decals: Disabled"); + setText(5, decalstoggle ? "Decals: Enabled (slower)" : "Decals: Disabled"); setText(6, musictoggle ? "Music: Enabled" : "Music: Disabled"); setText(9, invertmouse ? "Invert mouse: Yes" : "Invert mouse: No"); setText(10, std::string("Mouse Speed: ") + to_string(int(usermousesensitivity * 5))); @@ -539,7 +543,7 @@ void Menu::Tick() } if (mainmenu == 10) endgame = 2; - if (mainmenu == 18 && Input::isKeyPressed(MOUSEBUTTON2) && selected == 1) { + if (mainmenu == 18 && Input::isKeyPressed(MOUSEBUTTON_RIGHT) && selected == 1) { stereoseparation -= 0.001; updateStereoConfigMenu(); } @@ -622,7 +626,7 @@ void Menu::Tick() ismotionblur = !ismotionblur; break; case 5: - decals = !decals; + decalstoggle = !decalstoggle; break; case 6: musictoggle = !musictoggle; @@ -702,15 +706,16 @@ void Menu::Tick() loading = 2; loadtime = 0; targetlevel = 7; - if (firstload) + if (firstLoadDone) { TickOnceAfter(); - else + } else { LoadStuff(); + } whichchoice = selected - NB_CAMPAIGN_MENU_ITEM - Account::active().getCampaignChoicesMade(); actuallevel = (Account::active().getCampaignChoicesMade() > 0 ? campaignlevels[Account::active().getCampaignChoicesMade() - 1].nextlevel[whichchoice] : 0); - visibleloading = 1; + visibleloading = true; stillloading = 1; - Loadlevel(campaignlevels[actuallevel].mapname.c_str()); + LoadLevel(campaignlevels[actuallevel].mapname.c_str()); campaign = 1; mainmenu = 0; gameon = 1; @@ -723,11 +728,12 @@ void Menu::Tick() loading = 2; loadtime = 0; targetlevel = -1; - if (firstload) { + if (firstLoadDone) { TickOnceAfter(); - } else + } else { LoadStuff(); - Loadlevel(-1); + } + LoadLevel(-1); mainmenu = 0; gameon = 1; @@ -787,8 +793,8 @@ void Menu::Tick() } else { mainmenu = 1; } - displaytext[0].clear(); - displayselected = 0; + newusername.clear(); + newuserselected = 0; entername = 0; } break; @@ -809,11 +815,12 @@ void Menu::Tick() loading = 2; loadtime = 0; targetlevel = selected; - if (firstload) + if (firstLoadDone) { TickOnceAfter(); - else + } else { LoadStuff(); - Loadlevel(selected); + } + LoadLevel(selected); campaign = 0; mainmenu = 0; @@ -864,10 +871,10 @@ void Menu::Tick() OPENAL_SetFrequency(channels[stream_menutheme]); if (entername) { - inputText(displaytext[0], &displayselected); + inputText(newusername, &newuserselected); if (!waiting) { // the input as finished - if (!displaytext[0].empty()) { // with enter - Account::add(string(displaytext[0])); + if (!newusername.empty()) { // with enter + Account::add(string(newusername)); mainmenu = 8; @@ -875,24 +882,24 @@ void Menu::Tick() fireSound(firestartsound); - displaytext[0].clear(); + newusername.clear(); - displayselected = 0; + newuserselected = 0; } entername = 0; Load(); } - displayblinkdelay -= multiplier; - if (displayblinkdelay <= 0) { - displayblinkdelay = .3; - displayblink = !displayblink; + newuserblinkdelay -= multiplier; + if (newuserblinkdelay <= 0) { + newuserblinkdelay = .3; + newuserblink = !newuserblink; } } if (entername) { - setText(0, displaytext[0], 20, 400, -1, -1); - setText(-2, displayblink ? "_" : "", 20 + displayselected * 10, 400, -1, -1); + setText(0, newusername, 20, 400, -1, -1); + setText(-2, newuserblink ? "_" : "", 20 + newuserselected * 10, 400, -1, -1); } if (oldmainmenu != mainmenu) @@ -901,7 +908,7 @@ void Menu::Tick() } -int setKeySelected_thread(void* data) +int setKeySelected_thread(void*) { using namespace Game; int scancode = -1;