bool CBaseGameStats::UploadStatsFileNOW( void ) { if( !StatsTrackingIsFullyEnabled() ) return false; if ( !filesystem->FileExists( gamestats->GetStatSaveFileName(), GAMESTATS_PATHID ) ) { return false; } time_t curtime; VCRHook_Time( reinterpret_cast<long*>(&curtime) ); // For now always send updates after every time they run the engine!! #if 0 #if !defined( _DEBUG ) int elapsed = curtime - m_tLastUpload; if ( elapsed < ONE_DAY_IN_SECONDS ) return; #endif #endif CBGSDriver.m_tLastUpload = curtime; // Update the registry #ifndef SWDS IRegistry *reg = InstanceRegistry( "Steam" ); Assert( reg ); reg->WriteInt( GetStatUploadRegistryKeyName(), CBGSDriver.m_tLastUpload ); ReleaseInstancedRegistry( reg ); #endif CUtlBuffer buf; filesystem->ReadFile( GetStatSaveFileName(), GAMESTATS_PATHID, buf ); unsigned int uBlobSize = buf.TellPut(); if ( uBlobSize == 0 ) { return false; } const void *pvBlobData = ( const void * )buf.Base(); if( gamestatsuploader ) { return gamestatsuploader->UploadGameStats( "", 1, uBlobSize, pvBlobData ); } return false; }
bool CBaseGameStats::UploadStatsFileNOW( void ) { if( !StatsTrackingIsFullyEnabled() || !HaveValidData() || !gamestats->UseOldFormat() ) return false; if ( !filesystem->FileExists( gamestats->GetStatSaveFileName(), GAMESTATS_PATHID ) ) { return false; } int curtime = Plat_FloatTime(); CBGSDriver.m_tLastUpload = curtime; // Update the registry #ifndef SWDS IRegistry *reg = InstanceRegistry( "Steam" ); Assert( reg ); reg->WriteInt( GetStatUploadRegistryKeyName(), CBGSDriver.m_tLastUpload ); ReleaseInstancedRegistry( reg ); #endif CUtlBuffer buf; filesystem->ReadFile( GetStatSaveFileName(), GAMESTATS_PATHID, buf ); unsigned int uBlobSize = buf.TellPut(); if ( uBlobSize == 0 ) { return false; } const void *pvBlobData = ( const void * )buf.Base(); if( gamestatsuploader ) { return gamestatsuploader->UploadGameStats( "", 1, uBlobSize, pvBlobData ); } return false; }
bool CBaseGameStats_Driver::Init() { const char *pGameDir = CommandLine()->ParmValue( "-game", "hl2" ); //standardizing is a good thing char szLoweredGameDir[256]; Q_strncpy( szLoweredGameDir, pGameDir, sizeof( szLoweredGameDir ) ); Q_strlower( szLoweredGameDir ); gamestats = gamestats->OnInit( gamestats, szLoweredGameDir ); //determine constant strings needed for saving and uploading Q_strncpy( s_szSaveFileName, szLoweredGameDir, sizeof( s_szSaveFileName ) ); Q_strncat( s_szSaveFileName, "_gamestats.dat", sizeof( s_szSaveFileName ) ); Q_strncpy( s_szStatUploadRegistryKeyName, "GameStatsUpload_", sizeof( s_szStatUploadRegistryKeyName ) ); Q_strncat( s_szStatUploadRegistryKeyName, szLoweredGameDir, sizeof( s_szStatUploadRegistryKeyName ) ); gamestats->m_bLoggingToFile = CommandLine()->FindParm( "-gamestatsloggingtofile" ) ? true : false; gamestats->m_bLogging = CommandLine()->FindParm( "-gamestatslogging" ) ? true : false; if ( gamestatsuploader ) { m_bEnabled = gamestatsuploader->IsGameStatsLoggingEnabled(); if ( m_bEnabled ) { gamestatsuploader->GetPseudoUniqueId( s_szPseudoUniqueID, sizeof( s_szPseudoUniqueID ) ); } } ResetData(); #ifdef GAME_DLL if ( StatsTrackingIsFullyEnabled() ) { // FIXME: Load m_tLastUpload from registry and save it back out, too #ifndef SWDS IRegistry *reg = InstanceRegistry( "Steam" ); Assert( reg ); m_tLastUpload = reg->ReadInt( gamestats->GetStatUploadRegistryKeyName(), 0 ); ReleaseInstancedRegistry( reg ); #endif //load existing stats gamestats->LoadFromFile(); } #endif // GAME_DLL if ( s_szPseudoUniqueID[ 0 ] != 0 ) { gamestats->Event_Init(); #ifdef GAME_DLL if ( gamestats->UseOldFormat() ) { if( gamestats->AutoSave_OnInit() ) gamestats->SaveToFileNOW(); if( gamestats->AutoUpload_OnInit() ) gamestats->UploadStatsFileNOW(); } #endif } else { m_bEnabled = false; //unable to generate a pseudo-unique ID, disable tracking } return true; }