Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

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

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

trunk: the game now always jumps back to the menu

File size: 2.8 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    std::vector<StoryEntity*>         storyList;                       //!< the list of the StoryEntities for the menu
33};
34
35
36//! a simple game menu based on a story entity
37/**
38 * This is a simple menu, that is based on the StoryEntity. Therefore this menu is absolutly
39 * loadable and is exchangeable very easely :D
40 */
41class SimpleGameMenu : virtual public GameWorld, virtual public EventListener
42{
43
44  public:
45    SimpleGameMenu(const TiXmlElement* root = NULL);
46    virtual ~SimpleGameMenu();
47
48    virtual void loadParams(const TiXmlElement* root);
49
50    virtual ErrorMessage init();
51    virtual ErrorMessage loadData();
52    virtual ErrorMessage unloadData();
53
54    virtual bool start();
55    virtual bool stop();
56
57    virtual void process(const Event &event);
58
59
60  protected:
61    virtual void tick();
62    virtual void collide();
63
64
65  private:
66    void animateScene(float dt);
67    void switchMenuLayer(int layer1, int layer2);
68
69
70  private:
71    std::vector<MenuLayer*>           menuLayer;                       //!< the menu layer
72    MenuLayer*                        selectedLayer;                   //!< the selected menu layer
73    int                               layerIndex;
74
75    //std::vector<ImageEntity*>         menuList;                        //!< the list of the menu items
76    ImageEntity*                      menuSelected;                    //!< ref to the selected menu entity
77    ImageEntity*                      menuSelector;                    //!< ref to the selector image
78    ImageEntity*                      menuStartGame;
79    ImageEntity*                      menuStartMultiplayerGame;
80    ImageEntity*                      menuQuitGame;
81    int                               menuSelectedIndex;
82
83    Vector                            cameraVector;
84};
85
86
87
88//! the simple game menu data
89class SimpleGameMenuData : public GameWorldData
90{
91
92  public:
93    SimpleGameMenuData();
94    virtual ~SimpleGameMenuData();
95
96    virtual ErrorMessage init();
97
98
99  protected:
100    virtual ErrorMessage loadGUI(TiXmlElement* root);
101    virtual ErrorMessage loadWorldEntities(TiXmlElement* root);
102    virtual ErrorMessage loadScene(TiXmlElement* root);
103
104    virtual ErrorMessage unloadGUI();
105    virtual ErrorMessage unloadWorldEntities();
106    virtual ErrorMessage unloadScene();
107
108};
109
110
111#endif /* _GAME_WORLD_H */
Note: See TracBrowser for help on using the repository browser.