Exemplo n.º 1
0
void Game::RenderThreadloop()
{
	CA_TRACE("Renderer initialized\n");
	Initialize();
	CA_TRACE("Game initialized\n");
	LoadContent();
	CA_TRACE("Game load content done\n");

	try
	{
		BeginRun();

#if CA_PLATFORM_DESKTOP

		FrameLoop();
		EndRun();

#endif // #if CA_PLATFORM_DESKTOP

	}
	catch (const std::exception& ex)
	{
		CA_FATAL("Error during game running : %s", ex.what());
		return;
	}
	catch (...)
	{
		CA_FATAL("Error during game running : generic exception");
		return;
	}
}
Exemplo n.º 2
0
//-----------------------------------------------------------------------------
// Purpose: Think function to move the ghost
//-----------------------------------------------------------------------------
void GhostEntity::Think( void )
{
	CBaseAnimating::Think();

		if (Q_strlen(m_gName) != 0) {
			if (!IsEffectActive(EF_NODRAW)) EntityText(0, m_gName, 0);
			updateStep();
			HandleGhost();
		} else {
			EndRun();
		}
	SetNextThink( gpGlobals->curtime + 0.01f );
}
Exemplo n.º 3
0
	void Game::Run()
	{
		sassert(!inRun, "Run Method called more than once.");

		inRun = true;
		BeginRun();
			
		graphicsManager = (IGraphicsDeviceManager*)((GraphicsDeviceManager*)services.GetService(IGraphicsDeviceManager::GetType()));

		if (graphicsManager != null)
			graphicsManager->CreateDevice();
#if DEBUG
		else
			debugPrint("graphicsManager is NULL.\n");
#endif

		Initialize();

		while(1)
			Tick();

		EndRun();
		inRun = false;
	}
Exemplo n.º 4
0
/* Main function */
int main(int argc, char** argv)
{

  if( BeginJob( argc, argv ) == 0 ) {
    cout<<"BeginJob failed"<<endl;
    return 0;
  }

  /* Layer 1. The main loop over every stream entries */
  /* ------------------------------------------------ */
  CurrRun.Run = -1;
  cout<<"StreamChain add "<<StreamChain<<endl;
  unsigned int entries = StreamChain->GetEntries();
  for( unsigned int entry=0; entry<entries; entry++ )  {
    unsigned int localentry = StreamChain->LoadTree(entry);
    int ret = Reader->GetEntry( localentry );
    if( ret==0 ) { 
      cout<<"Error: Read error"<<endl;
      return 1;
    }
    
    /* Process run information and possible long time jump */
    if( Reader->Run != CurrRun.Run )  {
      if( CurrRun.Run != -1 )  {
	/* End Run */
	if( EndRun( Reader ) == 0 ) {
	  cout<<"EndRun failed"<<endl;
	  return 0;
	}
      }
      /* Begin Run */
      if( BeginRun( Reader ) == 0 ) {
	cout<<"BeginRun failed"<<endl;
	return 0;
      }
    }
    
    /*** Test each entry here ***/
    SubEvt* pSubEvt = new SubEvt( Reader );
    TimeStamp NewTime( pSubEvt->TrigSec, pSubEvt->TrigNano );
    if( (NewTime - CurrRun.CurrTime).GetSeconds() > 120 /* Two minutes */ ) {
      CurrRun.Breaks.push_back( CurrRun.CurrTime );
      CurrRun.Breaks.push_back( NewTime );
      CurrRun.SkipTime.Add( (NewTime - CurrRun.CurrTime).GetSeconds() );
    }
    CurrRun.CurrTime = NewTime;

    /* Cache all temporal related event. Give a chance to clean up the queue and do muon Id */
    SubEvtQueue PassedQueue = CachedQueueInsert( NewTime, pSubEvt );

    /* Layer 2. The main loop over every non-muon SubEvt */
    /* ------------------------------------------------- */
    SubEvtQueueIterator it, it_end = PassedQueue.end();
    for( it = PassedQueue.begin(); it != it_end; it++ )  {
      
      /* Build delay coincident event */
      SubEvt* pSubEvt = it->second;
      int ret = BuildEvent( pSubEvt );
      if( ret == 0 )  {
	cout<<"Error in BuildEvent"<<endl;
      }
      
      delete pSubEvt;

    }
    /***  End of SubEvt loop  ***/

  }
  /***  End of stream entry loop  ***/

  if( EndRun( Reader ) == 0 ) {
    cout<<"EndRun failed"<<endl;
    return 0;
  }

  /* End Job */
  /* ------- */
  if( EndJob() == 0 ) {
    cout<<"BeginJob failed"<<endl;
    return 0;
  }

  return 1;
}
Exemplo n.º 5
0
void ABETCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	if (running)
	{
		stamina -= DeltaTime;
		if (stamina <= 0)
		{
			EndRun();
			if(NoStaminaAudio != nullptr)
			UGameplayStatics::PlaySoundAtLocation(this, NoStaminaAudio, GetActorLocation());
		}
	}
	else
	{
		if (stamina < MAXSTAMINA) {
			stamina += DeltaTime / 2;
		}
		else {
			stamina = MAXSTAMINA;
		}
	}
	if (power)
	{
		if (lightIntensity <= 0)
		{		power = !power;
		flashLight->ToggleVisibility();
		lightIntensity = 20;
		}
		else {
			lightIntensity -= DeltaTime * 200;
			flashLight->SetIntensity(lightIntensity);
			if (lightIntensity >= 12000.f)
			{
				if (widgetChecker == 1)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidgetFull);
					WidgetBattery->AddToViewport();
					widgetChecker = 2;
				}
			}
			else if (lightIntensity < 12000.f && lightIntensity >= 9000.f)
			{
				if (widgetChecker == 2)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidget80);
					WidgetBattery->AddToViewport();
					widgetChecker = 3;
				}
			}
			else if (lightIntensity < 9000.f && lightIntensity >= 6000.f)
			{
				if (widgetChecker == 3)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidget60);
					WidgetBattery->AddToViewport();
					widgetChecker = 4;
				}
			}
			else if (lightIntensity < 6000.f && lightIntensity >= 3000.f)
			{
				if (widgetChecker == 4)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidget40);
					WidgetBattery->AddToViewport();
					widgetChecker = 5;
				}
			}
			else if (lightIntensity < 3000.f && lightIntensity > 0.f)
			{
				if (widgetChecker == 5)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidget20);
					WidgetBattery->AddToViewport();
					widgetChecker = 6;
				}
			}
			else if (lightIntensity <= 0.f)
			{
				if (widgetChecker == 6)
				{
					WidgetBattery->RemoveFromViewport();
					WidgetBattery = NULL;
				}
				if (WidgetBattery == NULL) {
					WidgetBattery = CreateWidget<UUserWidget>(Cast<APlayerController>(this->GetController()), UIBatteryWidgetEmpty);
					WidgetBattery->AddToViewport();
					widgetChecker = 7;
				}
			}
		}
	}
}
Exemplo n.º 6
0
void About::KeyPress(GG::Key key, std::uint32_t key_code_point,
                     GG::Flags<GG::ModKey> mod_keys)
{
    if ((key == GG::GGK_RETURN) || (key == GG::GGK_ESCAPE))
        EndRun();
}
void KVINDRAOnlineDataAnalyser::ProcessRun()
{
   // Perform treatment of a given run

   //Open data file
   fRunFile = (KVRawDataReader*)gDataSet->OpenRunfile(GetDataType().Data() , fRunNumber);
   if (fRunFile->GetStatus() == KVGRUNetClientGanilReader::kSTATUS_NOHOST) {
      // cannot connect to ACQ host
      Error("ProcessRun", "Cannot connect to acquisition host machine. Check KVGRUNetClientGanilReader.AcqHostName");
      return;
   }
   //warning! real number of run may be different from that deduced from file name
   //we get the real run number from gMultiDetArray and use it to name any new files
   fRunNumber = gMultiDetArray->GetCurrentRunNumber();

   fEventNumber = 0; //event number

   cout << endl << "Reading ONLINE events from RUN# " << fRunNumber << endl;

   cout << "Starting analysis of data on : ";
   TDatime now;
   cout <<  now.AsString() << endl << endl;

   preInitRun();
   //call user's beginning of run
   InitRun();
   postInitRun();

   fDetEv = new KVDetectorEvent;

   //loop over events in file
   fGoEventLoop = kTRUE;
   fDumpEvents = kFALSE;
   while (fGoEventLoop) {
      Bool_t gotevent = fRunFile->GetNextEvent();

      if (gotevent) {
         fEventNumber++;

         //reconstruct hit groups
         KVSeqCollection* fired = fRunFile->GetFiredDataParameters();
         gMultiDetArray->GetDetectorEvent(fDetEv, fired);

         preAnalysis();
         //call user's analysis. stop if returns kFALSE.
         if (!Analysis()) break;
         postAnalysis();

         fDetEv->Clear();

         if (!((fEventNumber) % 10000)) cout << " ++++ " << fEventNumber << " events read ++++ " << endl;
      } else {
         // got no event - why ?
         Int_t status = fRunFile->GetStatus();
         switch (status) {
            case KVGRUNetClientGanilReader::kSTATUS_NOBUFF:
               Warning("ProcessRun", "Got no buffer from ACQHOST. Sleeping for 2 seconds.");
               gSystem->Sleep(2000);
               break;

            case KVGRUNetClientGanilReader::kSTATUS_NOEVENT:
               Warning("ProcessRun", "Got no event from ACQHOST. Sleeping for 2 seconds.");
               gSystem->Sleep(2000);
               break;

            case KVGRUNetClientGanilReader::kSTATUS_NOACQ:
               Warning("ProcessRun", "Acquisition is stopped. Sleeping for 5 seconds.");
               gSystem->Sleep(5000);
               break;
         }
      }
   }

   delete fDetEv;

   cout << "Ending analysis of run " << fRunNumber << " on : ";
   TDatime now2;
   cout <<  now2.AsString() << endl << endl;
   cout << endl << "Finished reading " << fEventNumber << " events" << endl << endl;

   preEndRun();
   //call user's end of run function
   EndRun();
   postEndRun();

   if (fMessageThread) {
      fMessageThread->Kill();
      TThread::Delete(fMessageThread);
      delete fMessageThread;
      fMessageThread = 0;
   }
}