1
0
forked from 0ad/0ad
0ad/source/scripting/GameEvents.h
2005-04-22 19:14:50 +00:00

37 lines
945 B
C++

// GameEvents.h
// A class that exists to let scripts know when important things happen
// in the game.
#ifndef GAME_EVENTS_INCLUDED
#define GAME_EVENTS_INCLUDED
#include "DOMEvent.h"
class CGameEvents : public IEventTarget, public Singleton<CGameEvents>
{
// Game events don't really run on an object
JSObject* GetScriptExecContext( IEventTarget* target ) { return( g_ScriptingHost.GetGlobalObject() ); }
// Some events
class CEventSelectionChanged : public CScriptEvent
{
bool m_CausedByPlayer;
public:
CEventSelectionChanged( bool CausedByPlayer ) : CScriptEvent( L"selectionChanged", EVENT_SELECTION_CHANGED, false )
{
AddLocalProperty( L"byPlayer", &m_CausedByPlayer, true );
}
};
public:
void FireSelectionChanged( bool CausedByPlayer )
{
CEventSelectionChanged evt( CausedByPlayer );
DispatchEvent( &evt );
}
};
#define g_JSGameEvents CGameEvents::GetSingleton()
#endif