示例#1
0
//=============================================================================
// 生成
//=============================================================================
bool Score::Create(Score** outPointer,LPDIRECT3DDEVICE9 device, ObjectList* objectList,UpdateList *updateList,DrawListManager *drawList, int priority  , ObjectBase::OBJECT_TYPE type,ResultImport *import)
{
	Number *number[4];

	for( int i = 0 ; i < 4 ; i++ )
	{
		Number::Create( &number[i],device,objectList,import->texture(ResultImport::NUM),ObjectBase::TYPE_2D );

		updateList->Link( number[i] );
		drawList->Link(number[i],0,Shader::PAT_2D);
	}
	Score* pointer = new Score(number[0],number[1],number[2],number[3]);
	if(!pointer->Initialize())
		return false;

	*outPointer = pointer;
	return true;
}
vector<Score> GameJoltAPI::GetScores( int tableId /* = 0 */, bool user /* = false */, int limit /* = -1 */ )
{

	CStdString output;
	CStdString gameIDString;
	CStdString tableIdString;
	CStdString limitString;
	CStdString requestURL;
	vector<map<CStdString, CStdString>> parsedOutput;
	vector<map<CStdString, CStdString>>::iterator it;
	map<CStdString, CStdString> scoreInfo;
	vector<Score> scores;
	bool ret = true;

	// Game ID must be set.
	if ( m_GameID <= 0 )
	{
		m_ErrorMessage += _T("(The game ID must be set.)");
		return scores;
	}

	// We must format the Game ID to a string.
	gameIDString.Format( _T("%d"), m_GameID );
	tableIdString.Format( _T("%d"), tableId );
	limitString.Format( _T("%d"), limit );

	requestURL = _T("/scores/?game_id=") + gameIDString;

	if ( user )
	{
		// Username must be set.
		if ( m_Username == _T("") )
		{
			m_ErrorMessage += _T("(The username must be set.)");
			return scores;
		}

		// User token must be set.
		if ( m_UserToken == _T("") )
		{
			m_ErrorMessage += _T("(The user token must be set.)");
			return scores;
		}

		requestURL += _T("&username="******"&user_token=") + EncodeURL( m_UserToken );
	}

	if ( limit > 0 ) {
		requestURL += _T("&limit=") + limitString;
	}

	if ( tableId > 0 ) {
		requestURL += _T("&table_id=") + tableIdString;
	}

	// Send the request.
	ret = SendRequest( output, requestURL );

	if ( !ret )
	{
		m_ErrorMessage += _T("(Could not get the scores.)");
		return scores;
	}

	// Parse the output.
	ret = ParseOutputString( output, parsedOutput );

	if ( !ret )
	{
		m_ErrorMessage += _T("(Could not get the scores.)");
		return scores;
	}

	Score score;

	for ( it = parsedOutput.begin(); it != parsedOutput.end(); it++ )
	{
		scoreInfo = (*it);
		score = Score();
		score.Initialize( this, scoreInfo );
		scores.push_back( score );
	}

	return scores;

}