Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/adm/src/lib/util/loading/game_loader.h @ 10664

Last change on this file since 10664 was 10618, checked in by bknecht, 18 years ago

merged cleanup into trunk (only improvements)

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.