Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/gui/src/story_entities/game_menu.h @ 8673

Last change on this file since 8673 was 8673, checked in by bensch, 19 years ago

added game_menu.cc

File size: 2.3 KB
Line 
1/*!
2 * @file game_menu.h
3 *  a StoryEntity that contains a simple game menu
4 */
5
6#ifndef _GAME_MENU_H
7#define _GAME_MENU_H
8
9
10#include "game_world.h"
11#include "game_world_data.h"
12#include <vector>
13#include "glgui.h"
14
15namespace OrxSound { class SoundSource; }
16
17//! a simple game menu based on a story entity
18/**
19 * This is a simple menu, that is based on the StoryEntity. Therefore this menu is absolutly
20 * loadable and is exchangeable very easely :D
21 */
22class GameMenu : virtual public GameWorld, virtual public EventListener
23{
24
25  public:
26    GameMenu(const TiXmlElement* root = NULL);
27    virtual ~GameMenu();
28
29    /// TODO TAKE THIS OUT
30    void enterGui();
31    void execURL() const;
32    static int startURL(void* data);
33
34    void setImage(int i);
35    OrxGui::GLGuiImage* image;
36    OrxGui::GLGuiInputLine* imageName;
37    ///
38    virtual void loadParams(const TiXmlElement* root);
39
40    virtual ErrorMessage init();
41    virtual ErrorMessage loadData();
42    virtual ErrorMessage unloadData();
43
44    virtual bool start();
45    virtual bool stop();
46
47    virtual void process(const Event &event);
48
49
50    void startLevel(int level);
51    void quitMenu();
52
53  protected:
54    virtual void tick();
55    virtual void collide();
56
57
58  private:
59    void animateScene(float dt);
60    void switchMenuLayer(int layer1, int layer2);
61    void sliderTo(const Element2D* element, float bias = 0.0f);
62    void setSelectorSound(const std::string& selectorSound);
63
64
65  private:
66    OrxGui::GLGuiBox*                 mainMenu;
67    OrxGui::GLGuiBox*                 audioBox;
68    OrxGui::GLGuiBox*                 videoBox;
69    OrxGui::GLGuiBox*                 controlBox;
70    OrxGui::GLGuiBox*                 levelsBox;
71
72    Vector                            cameraVector;
73
74    OrxSound::SoundSource*            selectorSource;
75};
76
77
78
79//! the simple game menu data
80class GameMenuData : public GameWorldData
81{
82
83  public:
84    GameMenuData();
85    virtual ~GameMenuData();
86
87    virtual ErrorMessage init();
88
89
90  protected:
91    virtual ErrorMessage loadGUI(const TiXmlElement* root);
92    virtual ErrorMessage loadWorldEntities(const TiXmlElement* root);
93    virtual ErrorMessage loadScene(const TiXmlElement* root);
94
95    virtual ErrorMessage unloadGUI();
96    virtual ErrorMessage unloadWorldEntities();
97    virtual ErrorMessage unloadScene();
98
99};
100
101
102#endif /* _GAME_WORLD_H */
Note: See TracBrowser for help on using the repository browser.