summaryrefslogtreecommitdiff
path: root/src/intermediate.c
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2024-12-05 11:42:11 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2024-12-05 11:42:11 +0100
commit0974ff30789a215a31255080251c01eaaf9a5297 (patch)
treeeda0b28d3e1aee2ca17d0f433c00574809e205d9 /src/intermediate.c
parent190760b05d943e065cad31a0b983ef7736551feb (diff)
link with steam sdk and create bindings
Diffstat (limited to 'src/intermediate.c')
-rw-r--r--src/intermediate.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/intermediate.c b/src/intermediate.c
new file mode 100644
index 0000000..09edf10
--- /dev/null
+++ b/src/intermediate.c
@@ -0,0 +1,45 @@
+#include "steam/steam_api_flat.h"
+
+extern "C" char STEAM_SteamAPI_Init()
+{
+ return SteamAPI_Init();
+}
+
+extern "C" void STEAM_SteamAPI_Shutdown()
+{
+ return SteamAPI_Shutdown();
+}
+
+extern "C" void STEAM_SteamAPI_ReleaseCurrentThreadMemory()
+{
+ return SteamAPI_ReleaseCurrentThreadMemory();
+}
+
+extern "C" char STEAM_SteamAPI_RestartAppIfNecessary(uint32 unOwnAppID)
+{
+ return SteamAPI_RestartAppIfNecessary(unOwnAppID);
+}
+
+extern "C" void STEAM_SteamAPI_RunCallbacks()
+{
+ SteamAPI_RunCallbacks();
+}
+
+extern "C" uint64_steamid STEAM_SteamAPI_RequestUserStats()
+{
+ uint64_steamid id = SteamAPI_ISteamUser_GetSteamID(SteamAPI_SteamUser());
+ ISteamUserStats* stats = SteamAPI_SteamUserStats();
+ SteamAPI_ISteamUserStats_RequestUserStats(stats, id);
+ return id;
+}
+
+extern "C" void STEAM_SteamAPI_UnlockAchievement(const char* name)
+{
+ ISteamUserStats* stats = SteamAPI_SteamUserStats();
+
+ bool alreadyAchieved;
+ SteamAPI_ISteamUserStats_GetAchievement(stats, name, &alreadyAchieved);
+ SteamAPI_ISteamUserStats_SetAchievement(stats, name);
+
+ if (!alreadyAchieved) SteamAPI_ISteamUserStats_StoreStats(stats);
+} \ No newline at end of file