BOOL EventDispatcher::init()
{
	itsTimerEvents = new SimpleArray(10);
	itsRegisteredListeners = new SimpleArray[MAX_EVENT_TYPES + 1];

	// registering for pause so we can pause the timers
	registerForEvent(EVENT_TYPE_PAUSE,this,NULL);
	registerForEvent(EVENT_TYPE_UNPAUSE,this,NULL);
	return TRUE;
}
Пример #2
0
	RTSCamera::RTSCamera( const std::string& id, const vec3f& pos, const mat4f& projMatrix, const mat4f& viewMatrix )
		:	Camera( id, pos, projMatrix, viewMatrix )
		,	m_drag( 15.0f )
		,	KEYBOARD_IMPULSE_POWER( 5.0f )
		,	m_isDragging( false )
	{
		registerForEvent( "onSpecialKeyDown", *this, &RTSCamera::onSpecialKeyDown );
		registerForEvent( "onSpecialKeyUp", *this, &RTSCamera::onSpecialKeyUp );
		//registerForEvent( "onMouseButtonDown", *this, &RTSCamera::onMouseButtonDown );
		//registerForEvent( "onMouseButtonUp", *this, &RTSCamera::onMouseButtonUp );
		//registerForEvent( "onMouseMove", *this, &RTSCamera::onMouseMove );
	}
Пример #3
0
void SelEpolKqEvPrt::initialize(SOCKET sockfd, const int& timeout)
{
	this->timeoutMilis = timeout;
	this->sockfd = sockfd;
	if(sockfd<=0)
	{
		listenerMode = false;
		sockfd = 0;
	}
	else
	{
		listenerMode = true;
	}
	curfds = 1;
	#if defined(USE_WIN_IOCP)
		initIOCP();
	#elif defined(USE_MINGW_SELECT)
		fdMax = sockfd;
		FD_ZERO(&readfds);
		FD_ZERO(&master);
	#elif defined(USE_SELECT)
		fdsetSize = MAXDESCRIPTORS/FD_SETSIZE;
		fdMax = sockfd;
		for (int var = 0; var < fdsetSize; ++var) {
			FD_ZERO(&readfds[var]);
			FD_ZERO(&master[var]);
		}
	#elif defined USE_EPOLL
		epoll_handle = epoll_create(MAXDESCRIPTORS);
		memset(&ev, 0, sizeof(ev));
	#elif defined USE_KQUEUE
		kq = kqueue();
		if (kq == -1)
		{
			perror("kqueue");
		}
	#elif defined USE_DEVPOLL
		if((dev_poll_fd = open("/dev/poll", O_RDWR)) <0)
		{
			perror("devpoll");
		}
		if (fcntl(dev_poll_fd, F_SETFD, FD_CLOEXEC) < 0)
		{
			perror("devpoll fcntl");
		}
	#elif defined USE_EVPORT
		if ((port = port_create()) < 0) {
			perror("port_create");
		}
	#elif defined USE_POLL
		nfds=1;
		polled_fds = (struct pollfd *)calloc(1, nfds*sizeof(struct pollfd));
		polled_fds->fd = descriptor;
		polled_fds->events = POLLIN | POLLPRI;
		return;
	#endif
	#if !defined(USE_WIN_IOCP)
		if(sockfd>0)registerForEvent(sockfd);
	#endif
}
Пример #4
0
	PlayerController::PlayerController( int teamNumber )
		:	m_ship( nullptr )
		,	m_teamNumber( teamNumber )
	{
		registerForEvent( "SpaceshipDied", *this, &PlayerController::shipDiedEvt );
		m_shipRespawnTimer = new Timer( 3.0f );
	}
Пример #5
0
	AttackMoveOrders::AttackMoveOrders( const vec2f& targLoc )
		:	UnitOrders( targLoc )
		,	m_currentTargetEntity( nullptr )
		,	m_finalTargetLocation( targLoc )
	{
		m_readableDescription = "Attack Move";
		m_unitOrderType = ATTACK_MOVE;
		m_attackTimer = new Timer();
		registerForEvent( "EntityKilled", *this, &AttackMoveOrders::entityKilled );
		m_finalTargetTolerance = m_tolerance;
	}
Пример #6
0
void VortexCamera::onStart()
{
	registerForEvent(VortexMove::GetID());

	// Set Start Pos.
	{
		CaffComp::TransformComponent *transform = getOwner().getComponent<CaffComp::TransformComponent>();
		assert(transform);
		
		const CaffMath::Vector3 pos		 = transform->getPosition();
		const CaffMath::Vector3 startPos = CaffMath::Vector3Init(pos.x, pos.y, m_cameraPlane);
		
		transform->setPosition(startPos);
	}
}