PHP Code:
#ifndef STEAM_ACH_H
#define STEAM_ACH_H
#include "sdk_includes.h"
class cAchievements
{
public:
bool IsReady()
{
if( !g_pEngine )
return false;
if( !g_pEngine->GetAchievementMgr() )
return false;
if( !g_pSteamUserStats )
return false;
return true;
}
void UnlockAll()
{
if( !IsReady() )
return;
CGameID gameid( g_pEngine->GetAppID() );
CAchievementMgr* pAchieve = dynamic_cast<CAchievementMgr*>( g_pEngine->GetAchievementMgr() );
if( !pAchieve )
return;
for( int i = 0; i < g_pSteamUserStats->GetNumAchievements( gameid ); i++ )
{
IAchievement* pAchievement = pAchieve->GetAchievementByIndex( i );
if( !pAchievement )
continue;
CBaseAchievement *pBaseAchievement = dynamic_cast<CBaseAchievement *>( pAchievement );
if( !pBaseAchievement )
continue;
int id = pAchievement->GetAchievementID();
pBaseAchievement->SetAchieved( true );
pAchieve->AwardAchievement( id );
g_pSteamUserStats->SetAchievement( gameid, g_pSteamUserStats->GetAchievementName( gameid, i ) );
g_pSteamUserStats->StoreStats( gameid );
}
}
void RelockAll()
{
if( !IsReady() )
return;
CGameID gameid( g_pEngine->GetAppID() );
for( size_t i = 0; i < g_pSteamUserStats->GetNumAchievements( gameid ); i++ )
{
g_pSteamUserStats->ClearAchievement( gameid, g_pSteamUserStats->GetAchievementName( gameid, i ) );
}
g_pSteamUserStats->StoreStats( gameid );
}
};
extern cAchievements g_Achieve;
#endif
Source SDK/Steam API, i mixed and matched