Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/branches/heathaze/src/lib/util/loading/game_loader.h @ 10616

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

orxonox/trunk: merged the new_class_id branche back to the trunk.
merged with command:
svn merge https://svn.orxonox.net/orxonox/branches/new_class_id trunk -r9683:HEAD
no conflicts… puh..

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