Claypool

Courses

Publications

Students

Projects

Service

Downloads

Misc


Dragonfly: Manager.h Source File
Dragonfly 2.2
A text-based game engine

Manager.h

00001 ///
00002 /// The base manager
00003 ///
00004 
00005 #ifndef __MANAGER_H__
00006 #define __MANAGER_H__
00007 
00008 #include "ObjectList.h"
00009 #include "Event.h"
00010 #include "SceneGraph.h"                   // For MAX_LEVEL
00011 
00012 #define MAX_EVENTS 100                    ///< Max number of different events.
00013 
00014 class Manager {
00015 
00016  protected:
00017   string event[MAX_LEVEL+1][MAX_EVENTS];        ///< Names of events for lists.
00018   ObjectList obj_list[MAX_LEVEL+1][MAX_EVENTS]; ///< Objects in event lists.
00019   int event_list_count[MAX_LEVEL+1];            ///< Number of event lists.
00020   bool is_started;                              ///< True id startUp() success.
00021 
00022   /// Check if event is allowed by Manager.
00023   /// If allowed, return true else false.
00024   virtual bool isValid(string event_name);
00025   
00026  public:
00027   Manager();
00028   virtual ~Manager();
00029   
00030   /// Send event to all interested objects.
00031   void onEvent(Event *p_event);
00032 
00033   /// Indicate interest in event.
00034   /// Return 0 if ok, else -1.
00035   /// Note, no check is made to see if GameObject is already registered.
00036   int registerInterest(Object *p_go, string event_name);
00037 
00038   /// Indicate no more interest in event. 
00039   /// Return 0 if ok, else -1.
00040   int unregisterInterest(Object *p_go, string event_name);
00041 
00042   /// Startup the Manager. 
00043   /// Return 0 if ok, else negative number.
00044   virtual int startUp();
00045 
00046   /// Shutdown the Manager.  
00047   virtual void shutDown();
00048 
00049   /// Return status of is_started (true when startUp() was successful).
00050   bool isStarted();
00051 
00052 };
00053 
00054 #endif /// __MANAGER_H__
00055 
00056 
 All Classes Functions Variables Friends