Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/cleanup/src/lib/util/loading/game_loader.h @ 10620

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

cleaned out unused defs files, and moved glincl to grafics, alincl.h to sound

File size: 2.3 KB
Line 
1/*!
2 * @file game_loader.h
3 *  loads campaigns, worlds and all other story_entities
4*/
5
6#ifndef _GAME_LOADER_H
7#define _GAME_LOADER_H
8
9//#include "stdincl.h"
10#include "story_def.h"
11#include "event_listener.h"
12
13#include "error.h"
14
15//-----------------------------------------------------------------------------
16// Forward declarations
17//-----------------------------------------------------------------------------
18class Campaign;
19class World;
20class Factory;
21class TiXmlElement;
22class BaseObject;
23class Event;
24
25//! The GameLoader
26/**
27 *  The game loader loads all game date. this is performed in the following way:
28 * 1. Read the structure of campaings and worlds
29 * 2. Create the instances of the tree: here _ALL_ StoryEntities are created
30 *    also if they are not yet used. the worlds should load their data in
31 *    the StoryEntity::load() and StoryEntity::init() functions! NOWHERE ELSE!
32 *    Elsewhere, all the data will be allocated at the beginning... mess...
33 * 3. StoryEntities are load() and init() before they start
34 * 4. once the gamloader starts the game there will be a campaing starting a
35 *    world. this is done by callaing those StoryEntity::start()
36*/
37class GameLoader : public EventListener
38{
39  ObjectListDeclaration(GameLoader);
40  public:
41  virtual ~GameLoader ();
42  /**  this class is a singleton class @returns an instance of itself  */
43  static GameLoader* getInstance() { if(singletonRef == NULL) singletonRef = new GameLoader(); return singletonRef; }
44
45  ErrorMessage loadCampaign(const std::string& name);
46  ErrorMessage loadDebugCampaign(Uint32 campaignID);
47  ErrorMessage loadNetworkCampaign(const std::string& fileName);
48
49  ErrorMessage init();
50  ErrorMessage start();
51  void stop();
52  ErrorMessage pause();
53  ErrorMessage resume();
54
55  void switchToNextLevel();
56
57  void process(const Event &event);
58
59
60 private:
61  GameLoader ();
62
63  Campaign* fileToCampaign(const std::string& name);
64
65
66 private:
67  static GameLoader*     singletonRef;         //!< The singleton-reference to this object
68
69  Uint32                 startTime;            //!< start time of the campaign
70  bool                   isPaused;             //!< if the game is paused
71  bool                   bRun;                 //!< true if stop
72
73  Campaign*              currentCampaign;      //!< reference to the current campaign playing
74};
75
76#endif /* _GAME_LOADER_H */
Note: See TracBrowser for help on using the repository browser.