Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

/home/rdbrown/doxygen/cse125g1/src/game/client/mainmenu.cpp

00001 #include <stdlib.h>
00002 #include <vector>
00003 
00004 #include "opengl.h"
00005 #include "input/Input.h"
00006 #include "resources/resources.h"
00007 
00008 #include "mainmenu.h"
00009 #include "configuremenu.h"
00010 #include "connectmenu.h"
00011 #include "client.h"
00012 
00013 #include "LobbyGS.h"
00014 
00015 #include "textures.h"
00016 
00017 #include "menu/widgets.h"
00018 #include "Music.h"
00019 
00020 static GameState *thisGS;
00021 
00022 using namespace MMGUI;
00023 
00024 static void quit(const char *str) {
00025         exit(0);
00026 }
00027 
00028 static void configure(const char *str) {
00029         setGameState(new ConfigureMenu(thisGS->client));
00030 }
00031 static void connectMenu(const char *str) {
00032         setGameState(new ConnectMenu(thisGS->client));
00033 }
00034 
00035 void MainMenu::init() {
00036     thisGS = this;
00037         playMusic();
00038     MMGUI::menuInit();
00039     
00040     Frame *root = MMGUI::getRoot();
00041     
00042     root->setBackgroundColor(0,0,0,1);
00043     root->setBorderColor(0, 0.5, 0);
00044     root->setBorder(3);
00045 
00046         glEnable(GL_BLEND);                                                                     //use blending
00047         glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);      //standard blending factor
00048         glColor4f(1.0, 1.0, 1.0, 1.0);
00049     MMGUI::Image *backGround = new MMGUI::Image(TEXTURE_TITLE_BACKGROUND, WidgetAlignCenter, 1024, 768);
00050         MMGUI::Frame *menu = new MMGUI::Frame(WidgetAlignCenter, 800, 600);
00051     root->addChild(backGround);
00052     root->addChild(menu);
00053 
00054 
00055     MMGUI::Image *banner = new MMGUI::Image(TEXTURE_BANNER, WidgetAlignTop, 600, 200);
00056         //banner->setAlpha(.99999);
00057     menu->addChild(banner);
00058     
00059     MMGUI::Button *b = new MMGUI::Button(WidgetAlignCenter, 200, 100);
00060     b->setUpImage(TEXTURE_MULTIPLAYER_BUTTON);
00061     b->setDownImage(TEXTURE_MULTIPLAYER_BUTTON_ON);
00062     b->setOverImage(TEXTURE_MULTIPLAYER_BUTTON_OVER);
00063     b->setClickFunction(connectMenu);
00064     menu->addChild(b);
00065        
00066     b = new MMGUI::Button(WidgetAlignBottom, 200, 100);
00067     b->setUpImage(TEXTURE_EXIT_BUTTON);
00068     b->setDownImage(TEXTURE_EXIT_BUTTON_ON);
00069     b->setOverImage(TEXTURE_EXIT_BUTTON_OVER);
00070     b->setClickFunction(quit);
00071     menu->addChild(b);
00072 
00073     glutPostRedisplay();
00074 }
00075 
00076 void MainMenu::display(void) {
00077     glClearColor(0,0,0,1);
00078     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
00079   
00080         glDisable(GL_DEPTH_TEST);
00081     MMGUI::menuDraw();
00082         glEnable(GL_DEPTH_TEST);
00083   
00084     glutSwapBuffers();
00085 }
00086 
00087 void MainMenu::update(void) { }
00088 
00089 
00090 void MainMenu::exit() {
00091     MMGUI::menuClear();
00092 }
00093 
00094 

Generated on Thu Aug 18 16:03:08 2005 for Robin Hood: Thieves & Knights by doxygen1.2.18