コード例 #1
0
void TimeWarpOutputManager::insertEvent(std::shared_ptr<Event> input_event,
        std::shared_ptr<Event> output_event, unsigned int local_lp_id) {
    output_queue_[local_lp_id].push_back(OutputEvent(input_event, output_event));
}
コード例 #2
0
ファイル: output.cpp プロジェクト: UberGames/EF2GameSource
//================================================================
// Name:				OutputEvents
// Class:			DocFileOutput
//
// Description:	Loops through all the events and calls OutputEvent on each
//						(which will usually be a derived classes' version of it).
//						This function also filters out the events based on the typeFlag
//
// Parameters:		ClassDef in_class -- The class whose events we will loop through
//
// Returns:			None
//
//================================================================
void DocFileOutput::OutputEvents(ClassDef *in_class)
{
	ResponseDef<Class> *r;
	int			ev, i, num;
	Event       **events;
	
	num = Event::NumEventCommands();
	
	events = new Event *[num];
	memset( events, 0, sizeof( Event * ) * num );
	
	// gather event responses for this class
	r = in_class->responses;
	if ( r )
	{
		for( i = 0; r[i].event != NULL; i++ )
		{
			ev = ( int )*r[i].event;
			if ( r[i].response )
			{
				events[ev] = r[i].event;
			}
		}
	}
	
	for( i = 1; i < num; i++ )
	{
		int index;
		
		index = Event::MapSortedEventIndex( i );
		if ( events[index] )
		{
			// Filtering
			
			if ( events[index]->GetFlags() != 0 )
			{
				// Event is not default
				
				if ( ( events[index]->GetFlags() & EV_TIKIONLY ) && typeFlag == EVENT_SCRIPT_ONLY && !( events[index]->GetFlags() & EV_SCRIPTONLY ) )
					continue;
				
				if ( ( events[index]->GetFlags() & EV_SCRIPTONLY ) && typeFlag == EVENT_TIKI_ONLY && !( events[index]->GetFlags() & EV_TIKIONLY ) )
					continue;
				
				if ( ( events[index]->GetFlags() & EV_CODEONLY ) && ( typeFlag == EVENT_TIKI_ONLY || typeFlag == EVENT_SCRIPT_ONLY ) )
					continue;
				
				if ( ( events[index]->GetFlags() & EV_CHEAT ) && ( typeFlag == EVENT_TIKI_ONLY ) && !( events[index]->GetFlags() & EV_TIKIONLY ) )
					continue;
				
				if ( ( events[index]->GetFlags() & EV_CHEAT ) && ( typeFlag == EVENT_SCRIPT_ONLY ) && !( events[index]->GetFlags() & EV_SCRIPTONLY ) )
					continue;
				
				if ( ( events[index]->GetFlags() & EV_CONSOLE ) && ( typeFlag == EVENT_TIKI_ONLY || typeFlag == EVENT_SCRIPT_ONLY ) )
					continue;
			}
			
			OutputEvent( events[index] );
		}
	}
	
	delete[] events;
}
コード例 #3
0
ファイル: servo.cpp プロジェクト: AndreiLeman/printipi
OutputEvent Servo::peekNextEvent() const {
	bool nextState = !curState;
	EventClockT::time_point nextEventTime = lastEventTime + (curState ? highTime : (cycleLength-highTime));
	return OutputEvent(nextEventTime, pin, nextState);
}