/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2009.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: sgx/include/sgx/core/gamecode/happening.hpp

*/

#ifndef SGX_GAMECODE_HAPPENING_HPP
#define SGX_GAMECODE_HAPPENING_HPP	1

class CSGXHappening : public CSGXBaseEngine {
public:

	static CSGXHappening *get();
	static CSGXHappening *create();

	void	addEngine(CSGXEngine *engine);
	void	removeEngine(CSGXEngine *engine);

	tBOOL	registerScenarioObjectToAllEngines(CGameHandler *ptr);
	tBOOL	unregisterScenarioObjectFromAllEngines(CGameHandler *ptr);
	tBOOL	unregisterScenarioObjectsFromAllEngines();
	tBOOL	unregisterAllObjectsFromAllEngines();
	tBOOL	releaseAllObjectsFromAllEngines();

protected:
	static CSGXHappening *m_pSingleton;
};

#endif /* #define SGX_GAMECODE_HAPPENING_HPP */
