Files
RCBASIC4/rcbasic_runtime/rc_steam.h
2025-07-08 21:17:11 -05:00

53 lines
1.2 KiB
C++
Executable File

#ifndef RC_STEAM_H_INCLUDED
#define RC_STEAM_H_INCLUDED
#include <iostream>
#include <steam/steam_api.h>
#include <steam/isteamuserstats.h>
#define _ACH_ID( id, name ) { id, #id, name, "", 0, 0 }
struct Achievement_t
{
int m_eAchievementID;
const char *m_pchAchievementID;
char m_rgchName[128];
char m_rgchDescription[256];
bool m_bAchieved;
int m_iIconImage;
};
class CSteamAchievements
{
private:
int64 m_iAppID; // Our current AppID
Achievement_t *m_pAchievements; // Achievements data
int m_iNumAchievements; // The number of Achievements
bool m_bInitialized; // Have we called Request stats and received the callback?
public:
CSteamAchievements(Achievement_t *Achievements, int NumAchievements);
~CSteamAchievements();
void OutputDebugString(std::string dbg_string);
bool RequestStats();
bool SetAchievement(const char* ID);
int64 GetAppID();
STEAM_CALLBACK( CSteamAchievements, OnUserStatsReceived, UserStatsReceived_t,
m_CallbackUserStatsReceived );
STEAM_CALLBACK( CSteamAchievements, OnUserStatsStored, UserStatsStored_t,
m_CallbackUserStatsStored );
STEAM_CALLBACK( CSteamAchievements, OnAchievementStored,
UserAchievementStored_t, m_CallbackAchievementStored );
};
#endif // RC_STEAM_H_INCLUDED