Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/story_entities/game_world.h @ 7004

Last change on this file since 7004 was 7004, checked in by bensch, 18 years ago

orxonox/trunk: togglePNodeVisibility as it can be …. cool :)

File size: 2.8 KB
RevLine 
[6352]1/*!
2 * @file game_world.h
3 *  container for all game worlds (singleplayers, multiplayers..)
4 */
5
6#ifndef _GAME_WORLD_H
7#define _GAME_WORLD_H
8
[6402]9
[6352]10#include "story_entity.h"
[6498]11#include "game_world_data.h"
[6352]12
13class TiXmlElement;
14class Shell;
[6402]15class WorldEntity;
[6387]16class GameWorldData;
[6352]17
[6402]18
[6352]19//! The game world
20/**
21 *  this class initializes everything that should be displayed inside of the current level.
22 *  it is the main driving factor during gameplay.
23 */
24class GameWorld : public StoryEntity
25{
26
27  public:
[6989]28    GameWorld ();
[6352]29    virtual ~GameWorld ();
30
[6512]31    virtual void loadParams(const TiXmlElement* root);
[6352]32
[6370]33    /* functions from story-entity */
34    virtual ErrorMessage init();
[6372]35    virtual ErrorMessage loadData();
[6387]36    virtual ErrorMessage unloadData();
[6352]37
[6387]38    virtual bool start();
39    virtual bool stop();
40    virtual bool pause();
41    virtual bool resume();
42    virtual void run();
[6352]43
[6366]44    /**  this returns the current game time @returns elapsed game time     */
45    inline double getGameTime() { return this->gameTime; }
46    /** sets the game speed @param speed speed of the Game */
[6352]47    inline void setSpeed(float speed) { this->speed = speed; };
[6366]48    /**  returns the track path of this world @returns the track path */
[6352]49
[7004]50    static void togglePNodeVisibility();
51    static void toggleBVVisibility();
[6352]52
53
[6835]54
[6839]55
[6498]56    inline void setSky(WorldEntity* sky) { this->dataTank->sky = sky; }
57
58
[6352]59  protected:
60    /* world - running functions */
[6386]61    virtual void synchronize();
62    virtual void handleInput();
63    virtual void tick(std::list<WorldEntity*> worldEntity, float dt);
64    virtual void tick();
65    virtual void update();
66    virtual void collide();
67    virtual void draw();
68    virtual void display();
[6352]69
70
[6386]71  private:
72    void displayLoadScreen();
73    void releaseLoadScreen();
74
75
[6352]76  protected:
[6407]77    GameWorldData*      dataTank;                     //!< reference to the GameWorld Data Tank
[6845]78    TiXmlElement*       dataXML;                      //!< The XML-Element this World has been loaded with.
[6352]79
[6387]80    bool                showPNodes;                   //!< if the PNodes should be visible.
81    bool                showBV;                       //!< if the Bounding Volumes should be visible.
[6352]82
83    /* world timing */
[6402]84    Uint32              lastFrame;                    //!< last time of frame
85    Uint32              cycle;                        //!< The cycle we are in (starts with 0 and rises with every frame)
86    Uint32              dt;                           //!< time needed to calculate this frame (in milliSeconds)
87    float               dtS;                          //!< The time needed for caluculations in seconds
88    float               speed;                        //!< how fast the game flows
89    double              gameTime;                     //!< this is where the game time is saved
[6352]90
91    /* external modules interfaces */
[6387]92    Shell*              shell;
93};
[6352]94
95#endif /* _GAME_WORLD_H */
Note: See TracBrowser for help on using the repository browser.