Example #1
0
bool TTrailBoard::playGame( TForm *caller, int gameid )
{
	m_startTime = Now();

	game->m_returnDataHeader.partid= L"0";
	game->m_returnDataHeader.sessionid= L"0";
	game->m_returnDataHeader.sectionid= L"hm05";
	String startDate = m_startTime.FormatString("yyyy-mm-dd") + "T" + m_startTime.FormatString("hh:mm:ss");
	game->m_returnDataHeader.dateStarted=startDate; //L"2013-08-30T10:16:30:000";
	game->m_returnDataHeader.abandon= 0;
	game->m_returnDataHeader.introelapsed=0; //Intro elasped time
	game->m_returnDataHeader.totelapsed=0;
	game->m_returnDataHeader.practiceaelapsed=0;
	game->m_returnDataHeader.practiceaerrors=0;
	game->m_returnDataHeader.practicebelapsed=0;
	game->m_returnDataHeader.practiceberrors=0;
	game->m_returnDataHeader.partaelapsed=0;
	game->m_returnDataHeader.partaerrors=0;
	game->m_returnDataHeader.partbelapsed=0;
	game->m_returnDataHeader.partberrors=0;

	resetBoard();
	game->initGame();

	Show();
	panel_abandon->Visible = true;

	caller->Hide();
	if (results)
		delete results;

	game->run( );
	while ( game->isRunning() )	// WAIT FOR END SIGNAL
	{
		Application->ProcessMessages();
	}
	panel_abandon->Visible = false;
	game->m_returnDataHeader.totelapsed = MilliSecondsBetween(Now(),m_startTime);  //milliseconds elapsed since 1 January 1970

	std::stringstream timeString;
	timeString << game->getRunTime();
  /*
	if (!game->wasAbandoned())
		fm_tmessage->msgOk("Congratulations!\n\nYou completed the test in " + timeString.str() + " deci-seconds " + "\n\nWell done.","WHOOOT!", POPUP_COLOUR );
    */
	extractResults();
 /*	std::string resultString = results->serializeOut();

	if (SaveTextFileDialog->Execute())
	{
		int iFileHandle = FileCreate(SaveTextFileDialog->FileName);

		if (iFileHandle > 0)
			FileWrite(iFileHandle,(void*)AnsiString(resultString.c_str()).c_str(),resultString.length());
		FileClose(iFileHandle);
	}
*/	caller->Show();
	Hide();
	return( true );
}
Example #2
0
TInstantOperationVisualizer::~TInstantOperationVisualizer()
{
  TDateTime Time = Now();
  int64_t Duration = MilliSecondsBetween(Time, FStart);
  const int64_t MinDuration = 250;
  if (Duration < MinDuration)
  {
    ::Sleep(static_cast<uint32_t>(MinDuration - Duration));
  }
}
Example #3
0
//---------------------------------------------------------------------------
__fastcall TInstantOperationVisualizer::~TInstantOperationVisualizer()
{
  TDateTime Time = Now();
  __int64 Duration = MilliSecondsBetween(Time, FStart);
  const __int64 MinDuration = 250;
  if (Duration < MinDuration)
  {
    Sleep(static_cast<unsigned int>(MinDuration - Duration));
  }
}