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