![]() |
Dragonfly 2.2
A text-based game engine
|
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