Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/util/state.h @ 10646

Last change on this file since 10646 was 10643, checked in by bknecht, 18 years ago

improvements by landauf on bsp, rotor and wireframe (does build, should work)

File size: 6.2 KB
Line 
1/*!
2 * @file state.h
3 * Definition of the States Class
4*/
5
6#ifndef _STATE_H
7#define _STATE_H
8
9
10// FORWARD DECLARATION
11class PNode;
12class Camera;
13class CameraTarget;
14class WorldEntity;
15class Player;
16class SkyBox;
17class StoryEntity;
18class ObjectManager;
19class GameRules;
20class CameraMan;
21class ScriptManager;
22
23
24//! handles states about orxonox's most importatn objects
25/**
26 * This is an abstract Class-container, not really a Class.
27 * in this Class only static references to the most important
28 * Objects/List/etc. are stored.
29 */
30class State {
31
32 public:
33   //////////////
34   /// CAMERA ///
35   //////////////
36  /** @param camera the PNode to the Camera, @param cameraTarget the PNode to the Camera's target */
37  static void setCamera(Camera* camera, CameraTarget* cameraTarget);
38  static inline Camera* getCamera() { return State::camera; };
39  static inline CameraTarget* getCameraTarget() { return State::cameraTarget; };
40  /** @returns a Pointer to the PNode of the Camera */
41  static inline PNode* getCameraNode() { return State::cameraNode; };
42  /** @returns a Pointer to the CameraTarget */
43  static inline PNode* getCameraTargetNode() { return State::cameraTargetNode; };
44
45
46
47  /////////////////////
48  /// CAMERAMANAGER ///
49  /////////////////////
50  /** @param CameraMan the PNode to the cameraManagerager,*/
51  static void setCameraman(CameraMan*);
52  static inline CameraMan* getCameraman() { return State::cameraManager; };
53
54
55  ////////////////
56  /// SKYBOX   ///
57  ////////////////
58  /** @returns the current SkyBox */
59  static inline SkyBox* getSkyBox() { return State::skyBox; };
60  /** @param skyBox the SkyBox */
61  static inline void setSkyBox(SkyBox* skyBox) { State::skyBox = skyBox; };
62
63  //////////////////////
64  /// OBJECT-MANAGER ///
65  //////////////////////
66  /** @param objectManager the new Current ObjectManager */
67  static inline void setObjectManager(ObjectManager* objectManager) { State::objectManager = objectManager; };
68  /** @returns the current ObjectManager. */
69  static inline ObjectManager* getObjectManager() { return State::objectManager; };
70
71  static inline void setResolution(unsigned int resX, unsigned int resY) { State::resX = resX; State::resY = resY; };
72  static inline unsigned int getResX() { return State::resX; };
73  static inline unsigned int getResY() { return State::resY; };
74
75  //////////////////////
76  /// STORY-ENTITY   ///
77  //////////////////////
78  /** @param storyEntity sets the current StoryEntity that is been played */
79  static inline void setCurrentStoryEntity(StoryEntity* storyEntity) { State::storyEntity = storyEntity; };
80  /** @returns the current StoryEntity played */
81  static inline StoryEntity* getCurrentStoryEntity() { return State::storyEntity; };
82
83  /** @param gameRules sets the current GameRules */
84  static inline void setGameRules(GameRules* gameRules) { State::gameRules = gameRules; }
85  /** @returns the GameRules reference*/
86  static inline GameRules* getGameRules() { return State::gameRules; }
87
88  //////////////
89  /// PLAYER ///
90  //////////////
91  /** @param player sets the current local player */
92  static inline void setPlayer(Player* player) { State::player = player; };
93  /** @returns the local player*/
94  static inline Player* getPlayer() { return State::player; };
95  /** @param sets wireframemode */
96  static inline void showWireframe(bool wireframe) { State::bWireframe = wireframe; }
97  /** @retirms the wireframemode */
98  static inline bool showWireframe() { return State::bWireframe; }
99
100
101  ///////////////
102  /// NETWORK ///
103  ///////////////
104  /** sets the online stat (multiplayer network) @param bOnline is true if node is online */
105  static inline void setOnline(bool bOnline) { State::bOnline = bOnline; }
106  /** @returns true if this node is online (multiplayer network game) */
107  static bool isOnline() { return State::bOnline; }
108
109
110
111  ////////////////////
112  /// SCRIPT_ENGINE ///
113  ////////////////////
114  static void setScriptManager(ScriptManager* scriptManager) { State::scriptManager = scriptManager; };
115  static ScriptManager* getScriptManager() { return State::scriptManager; };
116
117  ////////////
118  /// Menu ///
119  ////////////
120  /** sets the menu mode @param mode true if always exit to menu */
121  static inline void setMenuID(int menuID) { State::menuID = menuID; }
122  /** @returns the menu mode */
123  static inline int getMenuID() { return State::menuID;}
124
125  ////////////////////////
126  /// Scroller-Control ///
127  ////////////////////////
128  /** sets the scroller-travelnode (center of the screen) */
129  static void setTravelNode(PNode* travelNode) {State::travelNode = travelNode;}
130  /** @returns the scroller-travelnode (center of the screen) */
131  static PNode* getTravelNode() { return State::travelNode; }
132
133
134 private:
135  State();
136
137  static Camera*                camera;             //!< The current Camera.
138  static CameraTarget*          cameraTarget;       //!< The Camera Target.
139  static CameraMan*             cameraManager;
140  static PNode*                 cameraNode;         //!< A reference to the camera
141  static PNode*                 cameraTargetNode;   //!< A reference to the cameraTarget
142  static PNode*                 nullParent;         //!< A reference to the Null-PNode.
143  static ObjectManager*         objectManager;      //!< A reference to the current ObjectManager
144  static StoryEntity*           storyEntity;        //!< A reference to the current StoryEntity played
145  static GameRules*             gameRules;          //!< A reference to the GameRules
146  static Player*                player;             //!< A reference to the Player
147  static PNode*                 travelNode;         //!< A reference to the scroller-travelnode
148
149  static SkyBox*                skyBox;            //!< The SkyBox used in the current world.
150
151  static  ScriptManager*        scriptManager;     //!< The ScriptManager.
152
153  static unsigned int           resX;              //!< The X Resolution of the screen.
154  static unsigned int           resY;              //!< The Y Resolution of the screen.
155  static int                    menuID;            //!< -1 on default, otherwise orxonox's Menu ID
156  static bool                   bOnline;           //!< Is true if this node is in multiplayer mode (via network)
157 
158  static bool                   bWireframe;        //!< The Wireframemode
159  };
160
161#endif /* _STATE_H */
Note: See TracBrowser for help on using the repository browser.