home *** CD-ROM | disk | FTP | other *** search
- #include "MainMenu.h"
-
- #include "GuiInfo.h"
- #include "Gui.h"
- #include "SoundInfo.h"
- #include "TextureHandler.h"
- #include "Game.h"
- #include "System.h"
- #include "version.h"
- #include "Display.h"
- #include "Renderer.h"
-
-
- void CB_MM_playButton(){
- Gui::mainMenu->closeAllSubmenus();
-
- Gui::mainMenu->playMenu->open();
- }
- void CB_MM_optionsButton(){
- Gui::mainMenu->closeAllSubmenus();
-
- Gui::optionsMenu->openFromMainMenu();
- }
- void CB_MM_quitButton(){
- Gui::mainMenu->closeAllSubmenus();
-
- Gui::mainMenu->quitMenu->open();
- }
- /*
- void CB_MM_quicklaunchButton(){
- // Gui::mainMenu->close();
-
- Game::init();
-
- // Gui::mainMenu->open();
- }
- */
-
- MainMenu::MainMenu():Menu("MainMenu"){
- backgroundTexture = TextureHandler::getTexture("gui/menu/main_menu_background.jpg");
- backgroundMusic = Sound::loadMusic("gui/menu/main_menu_background.ogg");
-
- addSubmenu(Gui::optionsMenu);
-
- playMenu = new MMPlayMenu();
- addSubmenu(playMenu);
-
- quitMenu = new MMQuitMenu();
- addSubmenu(quitMenu);
-
- TextButton* playButton = new TextButton(40, 500, 120, 25, "play");
- playButton->setCallbackFunction(&CB_MM_playButton);
- addMenuItem(playButton);
-
- TextButton* optionsButton = new TextButton(40, 450, 120, 25, "options");
- optionsButton->setCallbackFunction(&CB_MM_optionsButton);
- addMenuItem(optionsButton);
-
- TextButton* quitButton = new TextButton(40, 350, 120, 25, "quit");
- quitButton->setCallbackFunction(&CB_MM_quitButton);
- addMenuItem(quitButton);
-
-
- // TextButton* quicklaunchButton = new TextButton(40, 300, 120, 25, "test");
- // quicklaunchButton->setCallbackFunction(&CB_MM_quicklaunchButton);
- // addMenuItem(quicklaunchButton);
-
- allowConsole = true;
- }
-
- MainMenu::~MainMenu(){
- if(backgroundMusic!=NULL)
- Mix_FreeMusic(backgroundMusic);
-
- if(backgroundTexture!=NULL)
- TextureHandler::releaseTexture(backgroundTexture);
-
- delete playMenu;
- delete quitMenu;
- }
-
- bool MainMenu::open(){
- if(backgroundMusic!=NULL && Sound::info.var.enabled && Sound::info.var.playMusic)
- Sound::playMusic(backgroundMusic, -1);
-
- opened=true;
- mainLoop(); // waits until menu is closed again
- return true;
- }
-
- bool MainMenu::close(){
-
- if(backgroundMusic!=NULL && Sound::info.var.enabled)
- Sound::stopMusic();
-
- return Menu::close();
- }
-
- void MainMenu::drawBackground(){
- glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
- Renderer::drawTexturedQuad(0, 0, DISPLAY_VSCREEN_WIDTH, DISPLAY_VSCREEN_HEIGHT, backgroundTexture);
- /*
- int x=30;
- int y=340;
- int w=140;
- int h=245;
-
- Renderer::drawQuad(x, y, x+w, y+h, Gui::info.var.menu_normalColor, Gui::info.var.menu_backgroundColor);
- */
- glColor4fv(Gui::info.var.menu_normalColor);
- drawScaledAndAlignedFormatString(DISPLAY_VSCREEN_WIDTH, 0, 0.8f, 0.8f, Gui::info.var.menu_smallFont, TEXT_ALIGN_RIGHT,
- "FIGHT WIN PREVAIL v%s (%s) %s ", FWP_VERSION_STRING, FWP_OS_STRING, FWP_COPYRIGHT_NOTE);
-
- Menu::drawBackground();
- }
-
-
-
-
- // PLAY MENU /////////////////////////////////////////////////////////////////////
-
-
-
-
- void CB_PM_startDedicatedServerButton(){
- }
- void CB_PM_startServerButton(){
- Gui::mainMenu->closeAllSubmenus();
-
- Gui::startServerMenu->open();
-
- }
- void CB_PM_joinServerButton(){
- Gui::mainMenu->closeAllSubmenus();
-
- Gui::connectToServerMenu->open();
- }
-
-
- MMPlayMenu::MMPlayMenu():Menu("MMPlayMenu"){
-
- TextButton* startServerButton=new TextButton(190, 500, 280, 25, "host multiplayer game");
- startServerButton->setCallbackFunction(&CB_PM_startServerButton);
- addMenuItem(startServerButton);
- // startServerButton->deactivate();
-
- TextButton* joinServerButton=new TextButton(190, 450, 280, 25, "join multiplayer game");
- joinServerButton->setCallbackFunction(&CB_PM_joinServerButton);
- addMenuItem(joinServerButton);
- // joinServerButton->deactivate();
-
- TextButton* startDedicatedServerButton=new TextButton(190, 400, 280, 25, "start dedicated server");
- startDedicatedServerButton->setCallbackFunction(&CB_PM_startDedicatedServerButton);
- addMenuItem(startDedicatedServerButton);
- startDedicatedServerButton->deactivate();
-
- }
-
- // QUIT MENU /////////////////////////////////////////////////////////////////////
-
-
- void CB_QM_quitButton(){
- Gui::mainMenu->quitMenu->close();
- //mainMenu->close();
-
- Gui::creditsMenu->open();
-
- System::normalQuit();
- }
- void CB_QM_cancelButton(){
- Gui::mainMenu->quitMenu->close();
- }
-
-
- MMQuitMenu::MMQuitMenu():Menu("MMQuitMenu"){
-
- TextButton* quitButton=new TextButton(190, 350, 120, 25, "yes, quit");
- addMenuItem(quitButton);
- quitButton->setCallbackFunction(&CB_QM_quitButton);
-
- TextButton* cancelButton=new TextButton(190, 300, 120, 25, "cancel");
- addMenuItem(cancelButton);
- cancelButton->setCallbackFunction(&CB_QM_cancelButton);
-
- }
-