r89 - trunk/src

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Feb 18 05:27:33 EST 2005


Author: jonas
Date: 2005-02-18 05:27:33 -0500 (Fri, 18 Feb 2005)
New Revision: 89

Modified:
   trunk/src/gfxeng.h
   trunk/src/input.cpp
   trunk/src/lost_penguins.cpp
   trunk/src/menu.cpp
   trunk/src/menu.h
Log:
more menu stuff

Modified: trunk/src/gfxeng.h
===================================================================
--- trunk/src/gfxeng.h	2005-02-10 23:45:16 UTC (rev 88)
+++ trunk/src/gfxeng.h	2005-02-18 10:27:33 UTC (rev 89)
@@ -11,6 +11,7 @@
     frames per seconds. Always run time resizing and fullscreen switching.
 */
 class GraphicsEngine {
+    friend class ConfigMenu;
     public:
         GraphicsEngine();
         ~GraphicsEngine();
@@ -42,7 +43,7 @@
             if (show_fps) return currentfps;
             else return 0;
         }
-    private:
+    protected:
         Uint32 rmask;
         Uint32 gmask;
         Uint32 bmask;

Modified: trunk/src/input.cpp
===================================================================
--- trunk/src/input.cpp	2005-02-10 23:45:16 UTC (rev 88)
+++ trunk/src/input.cpp	2005-02-18 10:27:33 UTC (rev 89)
@@ -135,7 +135,9 @@
                         break;
                     }
                     case SDLK_RETURN: {
+                        if (state&INPUT_ACT) break;
                         state|=INPUT_ACT;
+                        menu->act();
                         gfxeng->updateMenu();
                         break;
                     }
@@ -162,7 +164,7 @@
                          } else {
                              state|=INPUT_MENU;
                              sfxeng->pauseMusic();
-                             menu=new TestMenu();
+                             menu=new GameMenu();
                          }
                          gfxeng->updateMenu();
                          break;
@@ -339,7 +341,7 @@
                          } else {
                              state|=INPUT_MENU;
                              sfxeng->pauseMusic();
-                             menu=new TestMenu();
+                             menu=new GameMenu();
                          }
                          break;
                     }

Modified: trunk/src/lost_penguins.cpp
===================================================================
--- trunk/src/lost_penguins.cpp	2005-02-10 23:45:16 UTC (rev 88)
+++ trunk/src/lost_penguins.cpp	2005-02-18 10:27:33 UTC (rev 89)
@@ -33,6 +33,7 @@
     }
     SDL_ShowCursor(SDL_DISABLE);
     SDL_SetEventFilter(filterEvents);
+    system(config.datadir.c_str());
 
     cout << "ImageCache...\n";
     imgcache=new ImageCache();
@@ -50,14 +51,9 @@
     cout << "Initializing Scenario...\n";
     scenario=new Scenario();
 
-    //TODO: menu, szenarios, etc
+    gfxeng->setMenuBG();
+    menu=new StartMenu();
 
-    //gfxeng->setMenuBG();
-    //menu=new TestMenu();
-
-    scenario->loadMap(config.map);
-    cout << "Starting game...\n" << endl;
-
     while (true) {
         if (menu) {
             gfxeng->drawMenu();

Modified: trunk/src/menu.cpp
===================================================================
--- trunk/src/menu.cpp	2005-02-10 23:45:16 UTC (rev 88)
+++ trunk/src/menu.cpp	2005-02-18 10:27:33 UTC (rev 89)
@@ -1,5 +1,8 @@
 #include "common.h"
+#include "scenario.h"
+#include "anim.h"
 #include "gfxeng.h"
+#include "sfxeng.h"
 #include "menu.h"
 
 Menu::Menu():
@@ -20,13 +23,122 @@
     }
 }
 
-TestMenu::TestMenu(): Menu() { init(); }
-void TestMenu::act() { }
-void TestMenu::init() {
-    title="-== TEST MENU ==-";
+
+StartMenu::StartMenu(): Menu() {
+    title="-== MAIN MENU ==-";
     entries.resize(4);
-    entries[0]="FPS: " + itos(gfxeng->getFPS());
-    entries[1]="Start Game";
+    update();
+}
+void StartMenu::act() {
+    switch (currententry) {
+    case 0: {
+        if ((config.map!="") && (scenario->loadMap(config.map)==0)) {
+            closeMenu();
+            cout << "Starting game...\n" << endl;
+        } else {
+            cout << "Select a valid map first...\n" << endl;
+        }
+        break;
+    }
+    case 1: {
+        setMenu(new MapMenu());
+        break;
+    }
+    case 2: {
+        setMenu(new ConfigMenu());
+        break;
+    }
+    case 3: {
+        quitGame(0);
+        break;
+    }
+    default: {
+        break;
+    }
+    }
+}
+void StartMenu::update() {
+    entries[0]="Start Game";
+    entries[1]="Map selection";
     entries[2]="Configuration";
     entries[3]="Quit";
 }
+
+
+GameMenu::GameMenu(): Menu() {
+    title="-== GAME MENU ==-";
+    entries.resize(3);
+    update();
+}
+void GameMenu::act() {
+    switch (currententry) {
+    case 0: {
+        if (!closeMenu()) {
+            gfxeng->renderScene(true);
+            scenario->anim->resetTime();
+            sfxeng->resumeMusic();
+        }
+        break;
+    }
+    case 1: {
+        setMenu(new ConfigMenu());
+        break;
+    }
+    case 2: {
+        quitGame(0);
+        break;
+    }
+    default: {
+        break;
+    }
+    }
+}
+void GameMenu::update() {
+    entries[0]="Resume";
+    entries[1]="Configuration";
+    entries[2]="Quit";
+}
+
+
+MapMenu::MapMenu(): Menu() {
+    title="-== MAP SELECTION ==-";
+//TODO: add common entries, check directory for map files, entries.push_back(name);
+    update();
+}
+void MapMenu::act() {
+//TODO: if (currententry>C) open entries[currententry] + .cfg...
+}
+void MapMenu::update() {
+}
+
+
+ConfigMenu::ConfigMenu(): Menu() {
+    title="-== CONFIGURATION MENU ==-";
+    entries.resize(2);
+    update();
+}
+void ConfigMenu::act() {
+    switch (currententry) {
+    case 0: {
+        gfxeng->toggleFPS();
+        update();
+        gfxeng->updateMenu();
+        break;
+    }
+    case 1: {
+        gfxeng->togglePlayerBar();
+        gfxeng->renderScene(true);
+        update();
+        gfxeng->updateMenu();
+        break;
+    }
+    default: {
+        break;
+    }
+    }
+}
+void ConfigMenu::update() {
+    entries[0]="Show FPS: "+string((gfxeng->show_fps) ? "ON" : "OFF");
+    entries[1]="Show Player Bar: "+string((gfxeng->show_bar) ? "ON" : "OFF");
+}
+

Modified: trunk/src/menu.h
===================================================================
--- trunk/src/menu.h	2005-02-10 23:45:16 UTC (rev 88)
+++ trunk/src/menu.h	2005-02-18 10:27:33 UTC (rev 89)
@@ -47,20 +47,37 @@
 class StartMenu : public Menu {
     public:
         StartMenu();
-        virtual ~StartMenu();
         virtual void act();
     private:
         /// Helper function
-        void init();
+        void update();
 };
 
-class TestMenu : public Menu {
+class GameMenu : public Menu {
     public:
-        TestMenu();
+        GameMenu();
         virtual void act();
     private:
         /// Helper function
-        void init();
+        void update();
 };
 
+class MapMenu : public Menu {
+    public:
+        MapMenu();
+        virtual void act();
+    private:
+        /// Helper function
+        void update();
+};
+
+class ConfigMenu : public Menu {
+    public:
+        ConfigMenu();
+        virtual void act();
+    private:
+        /// Helper function
+        void update();
+};
+
 #endif




More information about the lostpenguins-commits mailing list