]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Menu/Menu.cpp
Merged identical switch cases in Tutorial
[lugaru.git] / Source / Menu / Menu.cpp
index 7d8bce8dfdac5b83c44ff0aa1784c0f8f93c2961..bac46a622c935dd2509a646980f5bb6ffa90be55 100644 (file)
@@ -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<MenuItem> 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<MenuItem>::iterator it = items.begin(); it != items.end(); it++)
+    for (vector<MenuItem>::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;
@@ -787,8 +791,8 @@ void Menu::Tick()
                 } else {
                     mainmenu = 1;
                 }
-                displaytext[0].clear();
-                displayselected = 0;
+                newusername.clear();
+                newuserselected = 0;
                 entername = 0;
             }
             break;
@@ -864,10 +868,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 +879,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)