void Adaptor::RequestProcessEventsOnIdle()
{
  // Only request a notification if the Adaptor is actually running
  // and we haven't installed the idle notification
  if( ( ! mNotificationOnIdleInstalled ) && ( RUNNING == mState ) )
  {
    mNotificationOnIdleInstalled = AddIdle( MakeCallback( this, &Adaptor::ProcessCoreEventsFromIdle ) );
  }
}
Exemplo n.º 2
0
void Adaptor::RequestProcessEventsOnIdle()
{
  // Only request a notification if the Adaptor is actually running
  if ( RUNNING == mState )
  {
    boost::unique_lock<boost::mutex> lock( mIdleInstaller );

    // check if the idle handle is already installed
    if( mNotificationOnIdleInstalled )
    {
      return;
    }
    mNotificationOnIdleInstalled = AddIdle( boost::bind( &Adaptor::ProcessCoreEventsFromIdle, this ) );
  }
}
Exemplo n.º 3
0
void TradeActor::GetNextAction(void)
{
	if (m_curAction) {
		delete m_curAction;
		m_curAction = NULL;
	}

	if (m_actionQueue.GetNumItems() > 0) {
		m_actionQueue.Dequeue(m_curAction);
		if (m_curAction) {
			m_curGoodAction = (GOODACTION)m_curAction->GetActionType();
		} else {
			Assert(FALSE);
		}
	} else {
		
		AddIdle();
	}
}
Exemplo n.º 4
0
void WorkerActor::GetNextAction(void)
{
	delete m_curAction;
	m_curAction = NULL;

	if (m_actionQueue.GetNumItems() > 0) 
    {
		m_actionQueue.Dequeue(m_curAction);
		if (m_curAction) 
        {
			m_curUnitAction = (UNITACTION) m_curAction->GetActionType();
		} 
        else 
        {
			Assert(FALSE);
		}
	} 
    else 
    {
		AddIdle();
	}
}
Exemplo n.º 5
0
TradeActor::TradeActor(TradeRoute newRoute)
{
	GROUPTYPE		type;

	m_curAction = NULL;
	m_animPos = 0;


	m_routeID = newRoute;
	m_routePath = m_routeID.GetPath();
	m_routeID.GetSourceResource(m_routeType, m_routeResource);

	m_sourcePosID = 0; 
	m_currentPosID = m_sourcePosID+1; 
	m_destPosID = m_routePath->Num()-1; 

	type = GROUPTYPE_GOOD;
	
	Assert(g_goodSpriteGroupList);
	
	sint32 index = g_theResourceDB->Get(m_routeResource)->GetSpriteID();

	m_goodSpriteGroup = (GoodSpriteGroup *)g_goodSpriteGroupList->GetSprite(index, type, LOADTYPE_BASIC,(GAME_ACTION)0);

	m_currentPos = m_sourcePos = m_routePath->Get(m_currentPosID); 
	m_destPos = m_routePath->Get(m_destPosID); 
				
	m_x = 0;
	m_y = 0;

	m_facing = 0;
	m_frame = 0;
	
	AddIdle();
	
	m_actionQueue.Allocate(k_MAX_ACTION_QUEUE_SIZE);
}
Exemplo n.º 6
0
WorkerActor::WorkerActor(sint32 index, const MapPoint &pos, sint32 x, sint32 y)
:
    Actor               (),
	m_facing            (0),
	m_frame             (0),
	m_transparency      (TRANSPARENCY_DEFAULT),
	m_index             (index),
    m_pos               (pos),
    m_unitSpriteGroup   (NULL),
    m_curAction         (NULL),
    m_curUnitAction     (),
    m_actionQueue       (k_MAX_ACTION_QUEUE_SIZE)
{
	SetPos(x, y);

	Assert(g_unitSpriteGroupList);
    if (g_unitSpriteGroupList)
    {
        m_unitSpriteGroup = (UnitSpriteGroup *) 
            g_unitSpriteGroupList->GetSprite(index, GROUPTYPE_UNIT, LOADTYPE_FULL,(GAME_ACTION)0);
    }

    AddIdle();
}
Exemplo n.º 7
0
void Application::Quit()
{
  // Actually quit the application.
  AddIdle( MakeCallback( this, &Application::QuitFromMainLoop ) );
}