Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/story_entities/simple_game_menu.h @ 6837

Last change on this file since 6837 was 6837, checked in by patrick, 18 years ago

trunk: more submenu structure

File size: 2.6 KB
Line 
1/*!
2 * @file simple_game_menu.h
3 *  a StoryEntity that contains a simple game menu
4 */
5
6#ifndef _SIMPLE_GAME_MENU_H
7#define _SIMPLE_GAME_MENU_H
8
9
10#include "game_world.h"
11#include "event_listener.h"
12#include "game_world_data.h"
13#include <vector>
14#include "vector.h"
15
16
17class SimpleGameMenuData;
18class TiXmlElement;
19class ImageEntity;
20
21
22
23class MenuLayer
24{
25  public:
26    MenuLayer() {}
27    ~MenuLayer() {}
28
29
30  public:
31    std::vector<ImageEntity*>         menuList;                        //!< the list of the menu items
32};
33
34
35//! a simple game menu based on a story entity
36/**
37 * This is a simple menu, that is based on the StoryEntity. Therefore this menu is absolutly
38 * loadable and is exchangeable very easely :D
39 */
40class SimpleGameMenu : virtual public GameWorld, virtual public EventListener
41{
42
43  public:
44    SimpleGameMenu(const TiXmlElement* root = NULL);
45    virtual ~SimpleGameMenu();
46
47    virtual void loadParams(const TiXmlElement* root);
48
49    virtual ErrorMessage init();
50    virtual ErrorMessage loadData();
51
52    virtual bool start();
53    virtual bool stop();
54
55    virtual void process(const Event &event);
56
57
58  protected:
59    virtual void tick();
60    virtual void collide();
61
62
63  private:
64    void animateScene(float dt);
65    void switchMenuLayer(int layer1, int layer2);
66
67
68  private:
69    std::vector<MenuLayer*>           menuLayer;                       //!< the menu layer
70    MenuLayer*                        selectedLayer;                   //!< the selected menu layer
71    int                               layerIndex;
72
73    //std::vector<ImageEntity*>         menuList;                        //!< the list of the menu items
74    ImageEntity*                      menuSelected;                    //!< ref to the selected menu entity
75    ImageEntity*                      menuSelector;                    //!< ref to the selector image
76    ImageEntity*                      menuStartGame;
77    ImageEntity*                      menuStartMultiplayerGame;
78    ImageEntity*                      menuQuitGame;
79    int                               menuSelectedIndex;
80
81    Vector                            cameraVector;
82};
83
84
85
86//! the simple game menu data
87class SimpleGameMenuData : public GameWorldData
88{
89
90  public:
91    SimpleGameMenuData();
92    virtual ~SimpleGameMenuData();
93
94    virtual ErrorMessage init();
95
96
97  protected:
98    virtual ErrorMessage loadGUI(TiXmlElement* root);
99    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
100    virtual ErrorMessage loadScene(TiXmlElement* root);
101
102    virtual ErrorMessage unloadGUI();
103    virtual ErrorMessage unloadWorldEntities();
104    virtual ErrorMessage unloadScene();
105
106};
107
108
109#endif /* _GAME_WORLD_H */
Note: See TracBrowser for help on using the repository browser.