//============================================================================= // 生成 //============================================================================= 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; }