Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 14, 2009, 5:01:49 PM (15 years ago)
Author:
youngk
Message:

Implemented Mood functionality plus the ability to change the background sound in the main menu

Location:
code/branches/sound3/src/orxonox/gamestates
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/sound3/src/orxonox/gamestates/GSMainMenu.cc

    r5929 r5956  
    3636#include "core/Game.h"
    3737#include "core/ConsoleCommand.h"
     38#include "core/ConfigValueIncludes.h"
    3839#include "core/GraphicsManager.h"
    3940#include "core/GUIManager.h"
     
    4950        , inputState_(0)
    5051    {
     52                RegisterRootObject(GSMainMenu);
    5153        inputState_ = InputManager::getInstance().createInputState("mainMenu");
    5254        inputState_->setMouseMode(MouseMode::Nonexclusive);
     
    6466            // Load sound
    6567            this->ambient_ = new AmbientSound(0);
    66             this->ambient_->setSource("ambient/mainmenu.wav");
    6768        }
    6869    }
     
    9293        CommandExecutor::addConsoleCommandShortcut(createConsoleCommand(createFunctor(&GSMainMenu::startMainMenu), "startMainMenu"));
    9394        CommandExecutor::addConsoleCommandShortcut(createConsoleCommand(createFunctor(&GSMainMenu::startIOConsole), "startIOConsole"));
     95               
     96                // create command to change sound path
     97                CommandExecutor::addConsoleCommandShortcut(createConsoleCommand(createFunctor(&GSMainMenu::setMainMenuSoundPath, this), "setMMSoundPath"));
    9498
    9599        KeyBinderManager::getInstance().setToDefault();
     
    99103        {
    100104            this->ambient_->setLoop(true);
    101             this->ambient_->play();
     105                        this->ambient_->setPlayOnLoad(true);
    102106        }
     107
     108                this->setConfigValues();
    103109    }
    104110
     
    119125    {
    120126    }
     127
     128        void GSMainMenu::setConfigValues()
     129    {
     130        SetConfigValue(soundPathMain_, "ambient/mainmenu.wav")
     131            .description("Contains the path to the main menu sound file.")
     132                        .callback(this, &GSMainMenu::reloadSound);
     133    }
     134
     135        void GSMainMenu::reloadSound() {
     136                if (GameMode::playsSound())
     137        {
     138                        this->ambient_->setSource(soundPathMain_);
     139                }
     140        }
     141
     142        const std::string& GSMainMenu::getMainMenuSoundPath() {
     143                return soundPathMain_;
     144        }
     145
     146        void GSMainMenu::setMainMenuSoundPath(const std::string& path) {
     147                ModifyConfigValue(soundPathMain_, set, path);
     148        }
    121149
    122150    void GSMainMenu::startStandalone()
  • code/branches/sound3/src/orxonox/gamestates/GSMainMenu.h

    r5929 r5956  
    3434#include "util/OgreForwardRefs.h"
    3535#include "core/GameState.h"
     36#include "core/OrxonoxClass.h"
    3637
    3738namespace orxonox
    3839{
    39     class _OrxonoxExport GSMainMenu : public GameState
     40    class _OrxonoxExport GSMainMenu : public GameState, public OrxonoxClass
    4041    {
    4142    public:
     
    4647        void deactivate();
    4748        void update(const Clock& time);
     49
     50                void setConfigValues();
     51                void reloadSound();
     52                const std::string& getMainMenuSoundPath();
     53                void setMainMenuSoundPath(const std::string& path);
    4854
    4955        static void startStandalone();
     
    6167        // ambient sound for the main menu
    6268        AmbientSound*     ambient_;
     69                std::string               soundPathMain_;
    6370    };
    6471}
Note: See TracChangeset for help on using the changeset viewer.