diff --git a/Blitz/BlitzSteam.bb b/Blitz/BlitzSteam.bb
index 0a0deee..3712b80 100644
--- a/Blitz/BlitzSteam.bb
+++ b/Blitz/BlitzSteam.bb
@@ -14,6 +14,113 @@
; You should have received a copy of the GNU Lesser General Public License
; along with this program. If not, see .
+; Steam -------------------------------------------------------------------------
+Const BLITZSTEAM_ENUM_CALLBACK_SteamAppListCallbacks = 3900
+Const BLITZSTEAM_ENUM_CALLBACK_SteamAppsCallbacks = 1000
+Const BLITZSTEAM_ENUM_CALLBACK_SteamBillingCallbacks = 400
+Const BLITZSTEAM_ENUM_CALLBACK_SteamContentServerCallbacks = 600
+Const BLITZSTEAM_ENUM_CALLBACK_SteamControllerCallbacks = 2800
+Const BLITZSTEAM_ENUM_CALLBACK_SteamFriendsCallbacks = 300
+Const BLITZSTEAM_ENUM_CALLBACK_SteamGameCoordinatorCallbacks = 1700
+Const BLITZSTEAM_ENUM_CALLBACK_SteamGameServerCallbacks = 200
+Const BLITZSTEAM_ENUM_CALLBACK_SteamGameServerItemsCallbacks = 1500
+Const BLITZSTEAM_ENUM_CALLBACK_SteamGameServerStatsCallbacks = 1800
+Const BLITZSTEAM_ENUM_CALLBACK_SteamGameStatsCallbacks = 2000
+Const BLITZSTEAM_ENUM_CALLBACK_SteamHTMLSurfaceCallbacks = 4500
+Const BLITZSTEAM_ENUM_CALLBACK_SteamMatchmakingCallbacks = 500
+Const BLITZSTEAM_ENUM_CALLBACK_SteamMusicCallbacks = 4000
+Const BLITZSTEAM_ENUM_CALLBACK_SteamMusicRemoteCallbacks = 4100
+Const BLITZSTEAM_ENUM_CALLBACK_SteamNetworkingCallbacks = 1200
+Const BLITZSTEAM_ENUM_CALLBACK_SteamReservedCallbacks = 4400
+Const BLITZSTEAM_ENUM_CALLBACK_SteamScreenshotsCallbacks = 2300
+Const BLITZSTEAM_ENUM_CALLBACK_SteamStreamLauncherCallbacks = 2600
+Const BLITZSTEAM_ENUM_CALLBACK_SteamStreamClientCallbacks = 3500
+Const BLITZSTEAM_ENUM_CALLBACK_SteamUserCallbacks = 100
+Const BLITZSTEAM_ENUM_CALLBACK_SteamUserStatsCallbacks = 1100
+Const BLITZSTEAM_ENUM_CALLBACK_SteamUtilsCallbacks = 700
+Const BLITZSTEAM_ENUM_CALLBACK_Steam2AsyncCallbacks = 1900
+Const BLITZSTEAM_ENUM_CALLBACK_ClientAudioCallbacks = 2400
+Const BLITZSTEAM_ENUM_CALLBACK_ClientControllerCallbacks = 2700
+Const BLITZSTEAM_ENUM_CALLBACK_ClientDepotBuilderCallbacks = 1400
+Const BLITZSTEAM_ENUM_CALLBACK_ClientDeviceAuthCallbacks = 3000
+Const BLITZSTEAM_ENUM_CALLBACK_ClientFriendsCallbacks = 800
+Const BLITZSTEAM_ENUM_CALLBACK_ClientHTTPCallbacks = 2100
+Const BLITZSTEAM_ENUM_CALLBACK_ClientInventoryCallbacks = 4700
+Const BLITZSTEAM_ENUM_CALLBACK_ClientMusicCallbacks = 3200
+Const BLITZSTEAM_ENUM_CALLBACK_ClientNetworkDeviceManagerCallbacks = 3100
+Const BLITZSTEAM_ENUM_CALLBACK_ClientParentalSettingsCallbacks = 2900
+Const BLITZSTEAM_ENUM_CALLBACK_ClientProductBuilderCallbacks = 3600
+Const BLITZSTEAM_ENUM_CALLBACK_ClientRemoteStorageCallbacks = 1300
+Const BLITZSTEAM_ENUM_CALLBACK_ClientRemoteClientManagerCallbacks = 3300
+Const BLITZSTEAM_ENUM_CALLBACK_ClientRemoteControlManagerCallbacks = 3800
+Const BLITZSTEAM_ENUM_CALLBACK_ClientReservedCallbacks = 4300
+Const BLITZSTEAM_ENUM_CALLBACK_ClientScreenshotsCallbacks = 2200
+Const BLITZSTEAM_ENUM_CALLBACK_ClientShortcutsCallbacks = 3700
+Const BLITZSTEAM_ENUM_CALLBACK_ClientUGCCallbacks = 3400
+Const BLITZSTEAM_ENUM_CALLBACK_ClientUnifiedMessagesCallbacks = 2500
+Const BLITZSTEAM_ENUM_CALLBACK_ClientUserCallbacks = 900
+Const BLITZSTEAM_ENUM_CALLBACK_ClientUtilsCallbacks = 1600
+Const BLITZSTEAM_ENUM_CALLBACK_ClientVideoCallbacks = 4600
+Const BLITZSTEAM_ENUM_CALLBACK_ClientVRCallbacks = 4200
+
+; SteamAppList ------------------------------------------------------------------
+Const BLITZSTEAM_CALLBACK_APPINSTALLED = BLITZSTEAM_ENUM_CALLBACK_SteamAppListCallbacks + 1
+Const BLITZSTEAM_CALLBACK_APPUNINSTALLED = BLITZSTEAM_ENUM_CALLBACK_SteamAppListCallbacks + 2
+
+; SteamApps ---------------------------------------------------------------------
+Const BLITZSTEAM_CALLBACK_DLCINSTALLED = BLITZSTEAM_ENUM_CALLBACK_SteamAppsCallbacks + 5
+Const BLITZSTEAM_CALLBACK_APPPROOFOFPURCHASEKEYRESPONSE = BLITZSTEAM_ENUM_CALLBACK_SteamAppsCallbacks + 13
+Const BLITZSTEAM_CALLBACK_NEWLAUNCHQUERYPARAMETERS = BLITZSTEAM_ENUM_CALLBACK_SteamAppsCallbacks + 14
+; The following things are PS3 only:
+; ERegisterActivationCodeResult
+; RegisterActivationCodeResponse_t
+
+; SteamClient -------------------------------------------------------------------
+Const BLITZSTEAM_EACCOUNTYPE_INVALID = 0
+Const BLITZSTEAM_EACCOUNTYPE_INDIVIDUAL = 1
+Const BLITZSTEAM_EACCOUNTYPE_MULTISEAT = 2
+Const BLITZSTEAM_EACCOUNTYPE_GAMESERVER = 3
+Const BLITZSTEAM_EACCOUNTYPE_ANONGAMESERVER = 4
+Const BLITZSTEAM_EACCOUNTYPE_PENDING = 5
+Const BLITZSTEAM_EACCOUNTYPE_CONTENTSERVER = 6
+Const BLITZSTEAM_EACCOUNTYPE_CLAN = 7
+Const BLITZSTEAM_EACCOUNTYPE_CHAT = 8
+;Const BLITZSTEAM_EACCOUNTYPE_CONSOLEUSER = 9
+Const BLITZSTEAM_EACCOUNTYPE_ANONUSER = 10
+
+; SteamController ---------------------------------------------------------------
+Const BLITZSTEAM_RIGHT_TRIGGER_MASK = $00000001
+Const BLITZSTEAM_LEFT_TRIGGER_MASK = $00000002
+Const BLITZSTEAM_RIGHT_BUMPER_MASK = $00000004
+Const BLITZSTEAM_LEFT_BUMPER_MASK = $00000008
+Const BLITZSTEAM_BUTTON_0_MASK = $00000010
+Const BLITZSTEAM_BUTTON_1_MASK = $00000020
+Const BLITZSTEAM_BUTTON_2_MASK = $00000040
+Const BLITZSTEAM_BUTTON_3_MASK = $00000080
+Const BLITZSTEAM_TOUCH_0_MASK = $00000100
+Const BLITZSTEAM_TOUCH_1_MASK = $00000200
+Const BLITZSTEAM_TOUCH_2_MASK = $00000400
+Const BLITZSTEAM_TOUCH_3_MASK = $00000800
+Const BLITZSTEAM_BUTTON_MENU_MASK = $0001000
+Const BLITZSTEAM_BUTTON_STEAM_MASK = $0002000
+Const BLITZSTEAM_BUTTON_ESCAPE_MASK = $0004000
+Const BLITZSTEAM_BUTTON_BACK_LEFT_MASK = $0008000
+Const BLITZSTEAM_BUTTON_BACK_RIGHT_MASK = $0010000
+Const BLITZSTEAM_BUTTON_LEFTPAD_CLICKED_MASK = $0020000
+Const BLITZSTEAM_BUTTON_RIGHTPAD_CLICKED_MASK = $0040000
+Const BLITZSTEAM_LEFTPAD_FINGERDOWN_MASK = $0080000
+Const BLITZSTEAM_RIGHTPAD_FINGERDOWN_MASK = $0100000
+Const BLITZSTEAM_JOYSTICK_BUTTON_MASK = $0400000
+Const BLITZSTEAM_ESTEAMCONTROLLERPAD_LEFT = 0
+Const BLITZSTEAM_ESTEAMCONTROLLERPAD_RIGHT = 1
+
+Type BlitzSteamControllerState
+ Field unPacketNum%
+ Field ulButtonsL%, ulButtonsR%
+ Field sLeftPadXY // Left/High = X, Right/Low = Y
+ Field sRightPadXY // Left/High = X, Right/Low = Y
+End Type
+
;----------------------------------------------------------------
;-- Enumerations
;----------------------------------------------------------------
diff --git a/Blitz/BlitzSteam.decls b/Blitz/BlitzSteam.decls
index f98759e..f461e4c 100644
--- a/Blitz/BlitzSteam.decls
+++ b/Blitz/BlitzSteam.decls
@@ -15,14 +15,76 @@
; along with this program. If not, see .
.lib "BlitzSteam.dll"
+; Helpers -----------------------------------------------------------------------
+; -- Int64
+BlitzSteamInt64_New%()
+BlitzSteamInt64_Copy%(other%)
+BlitzSteamInt64_Destroy(this%)
+BlitzSteamInt64_SetP(this%, other%)
+BlitzSteamInt64_SetV(this%, left%, right%)
+BlitzSteamInt64_AddP(this%, other%)
+BlitzSteamInt64_AddV(this%, left%, right%)
+BlitzSteamInt64_SubP(this%, other%)
+BlitzSteamInt64_SubV(this%, left%, right%)
+BlitzSteamInt64_MulP(this%, other%)
+BlitzSteamInt64_MulV(this%, left%, right%)
+BlitzSteamInt64_DivP(this%, other%)
+BlitzSteamInt64_DivV(this%, left%, right%)
+BlitzSteamInt64_EqualsP%(this%, other%)
+BlitzSteamInt64_EqualsV%(this%, left%, right%)
+BlitzSteamInt64_GreaterP%(this%, other%)
+BlitzSteamInt64_GreaterV%(this%, left%, right%)
+BlitzSteamInt64_GEqualsP%(this%, other%)
+BlitzSteamInt64_GEqualsV%(this%, left%, right%)
+BlitzSteamInt64_SmallerP%(this%, other%)
+BlitzSteamInt64_SmallerV%(this%, left%, right%)
+BlitzSteamInt64_SEqualsP%(this%, other%)
+BlitzSteamInt64_SEqualsV%(this%, left%, right%)
+BlitzSteamInt64_ToString$(this%)
+BlitzSteamInt64_ValueL%(this%)
+BlitzSteamInt64_ValueR%(this%)
+BlitzSteamInt64_FromFloat%(value#)
+BlitzSteamInt64_ToFloat#(this%)
+BlitzSteamInt64_ToDouble%(this%)
+; -- Double
+BlitzSteamDouble_New%()
+BlitzSteamDouble_Copy%(other%)
+BlitzSteamDouble_Destroy(this%)
+BlitzSteamDouble_SetP(this%, other%)
+BlitzSteamDouble_SetV(this%, left%, right%)
+BlitzSteamDouble_AddP(this%, other%)
+BlitzSteamDouble_AddV(this%, left%, right%)
+BlitzSteamDouble_SubP(this%, other%)
+BlitzSteamDouble_SubV(this%, left%, right%)
+BlitzSteamDouble_MulP(this%, other%)
+BlitzSteamDouble_MulV(this%, left%, right%)
+BlitzSteamDouble_DivP(this%, other%)
+BlitzSteamDouble_DivV(this%, left%, right%)
+BlitzSteamDouble_EqualsP%(this%, other%)
+BlitzSteamDouble_EqualsV%(this%, left%, right%)
+BlitzSteamDouble_GreaterP%(this%, other%)
+BlitzSteamDouble_GreaterV%(this%, left%, right%)
+BlitzSteamDouble_GEqualsP%(this%, other%)
+BlitzSteamDouble_GEqualsV%(this%, left%, right%)
+BlitzSteamDouble_SmallerP%(this%, other%)
+BlitzSteamDouble_SmallerV%(this%, left%, right%)
+BlitzSteamDouble_SEqualsP%(this%, other%)
+BlitzSteamDouble_SEqualsV%(this%, left%, right%)
+BlitzSteamDouble_ToString$(this%)
+BlitzSteamDouble_ToFloat#(this%)
+BlitzSteamDouble_FromFloat%(value#)
+BlitzSteamDouble_ToInt32%(this%)
+BlitzSteamDouble_FromInt32%(value%)
+BlitzSteamDouble_ToInt64%(this%)
+
; Steam -------------------------------------------------------------------------
BlitzSteam_Init%()
BlitzSteam_Shutdown()
BlitzSteam_IsSteamRunning%()
BlitzSteam_RestartAppIfNecessary%(unOwnAppID%)
BlitzSteam_SetMiniDumpComment(pchMsg$)
-BlitzSteam_WriteMiniDump(uStructuredExceptionCode%, pvExceptionInfo%, uBuildID%)
-BlitzSteam_WriteMiniDumpBank(uStructuredExceptionCode%, pvExceptionInfo*, uBuildID%) : "BlitzSteam_WriteMiniDump"
+BlitzSteam_WriteMiniDumpEx(uStructuredExceptionCode%, pvExceptionInfo%, uBuildID%) : "BlitzSteam_WriteMiniDump"
+BlitzSteam_WriteMiniDump(uStructuredExceptionCode%, pvExceptionInfo*, uBuildID%)
; -- Interfaces
BlitzSteamAppList%()
BlitzSteamApps%()
@@ -55,11 +117,11 @@ BlitzSteam_UnregisterCallResult(pCallback%, hAPICall_L%, hAPICall_R%)
; SteamAppList ------------------------------------------------------------------
BlitzSteamAppList_GetNumInstalledApps%(lpSteamAppList%)
BlitzSteamAppList_GetInstalledAppsEx%(lpSteamAppList%, pvecAppID%, unMaxIDs%) : "BlitzSteamAppList_GetInstalledApps"
-BlitzSteamAppList_GetInstalledApps%(lpSteamAppList%, pvecAppIDBank*, unMaxIDs%)
+BlitzSteamAppList_GetInstalledApps%(lpSteamAppList%, pvecAppID*, unMaxIDs%)
BlitzSteamAppList_GetAppNameEx%(lpSteamAppList%, nAppId%, pchName%, cchNameMax%) : "BlitzSteamAppList_GetAppName"
-BlitzSteamAppList_GetAppName%(lpSteamAppList%, nAppId%, pchNameBank*, cchNameMax%)
+BlitzSteamAppList_GetAppName%(lpSteamAppList%, nAppId%, pchName*, cchNameMax%)
BlitzSteamAppList_GetAppInstallDirEx%(lpSteamAppList%, nAppId%, pchDirectory%, cchDirectoryMax%) : "BlitzSteamAppList_GetAppInstallDir"
-BlitzSteamAppList_GetAppInstallDir%(lpSteamAppList%, nAppId%, pchDirectoryBank*, cchDirectoryMax%)
+BlitzSteamAppList_GetAppInstallDir%(lpSteamAppList%, nAppId%, pchDirectory*, cchDirectoryMax%)
BlitzSteamAppList_GetAppBuildId%(lpSteamAppList%, nAppId%)
; SteamApps ---------------------------------------------------------------------
@@ -75,21 +137,69 @@ BlitzSteamApps_GetEarliestPurchaseUnixTime%(lpSteamApps%, appID%)
BlitzSteamApps_IsSubscribedFromFreeWeekend%(lpSteamApps%)
BlitzSteamApps_GetDLCCount%(lpSteamApps%)
BlitzSteamApps_GetDLCDataByIndexEx%(lpSteamApps%, iDLC%, pAppId%, pbAvailable%, pchName%, cchNameBufferSize%) : "BlitzSteamApps_GetDLCDataByIndex"
-BlitzSteamApps_GetDLCDataByIndex%(lpSteamApps%, iDLC%, pAppIdBank*, pbAvailableBank*, pchNameBank*, cchNameBufferSize%)
+BlitzSteamApps_GetDLCDataByIndex%(lpSteamApps%, iDLC%, pAppId*, pbAvailable*, pchName*, cchNameBufferSize%)
BlitzSteamApps_InstallDLC(lpSteamApps%, nAppID%)
BlitzSteamApps_UninstallDLC(lpSteamApps%, nAppID%)
BlitzSteamApps_RequestAppProofOfPurchaseKey(lpSteamApps%, nAppID%)
BlitzSteamApps_GetCurrentBetaNameEx%(lpSteamApps%, pchName%, cchNameBufferSize%) : "BlitzSteamApps_GetCurrentBetaName"
-BlitzSteamApps_GetCurrentBetaName%(lpSteamApps%, pchNameBank*, cchNameBufferSize%)
+BlitzSteamApps_GetCurrentBetaName%(lpSteamApps%, pchName*, cchNameBufferSize%)
BlitzSteamApps_MarkContentCorrupt%(lpSteamApps%, bMissingFilesOnly%)
BlitzSteamApps_GetInstalledDepotsEx%(lpSteamApps%, nAppID%, pvecDepots%, cMaxDepots%) : "BlitzSteamApps_GetInstalledDepots"
-BlitzSteamApps_GetInstalledDepots%(lpSteamApps%, nAppID%, pvecDepotsBank*, cMaxDepots%)
+BlitzSteamApps_GetInstalledDepots%(lpSteamApps%, nAppID%, pvecDepots*, cMaxDepots%)
BlitzSteamApps_GetAppInstallDirEx%(lpSteamApps%, nAppID%, pchFolder%, cchFolderBufferSize%) : "BlitzSteamApps_GetAppInstallDir"
-BlitzSteamApps_GetAppInstallDir%(lpSteamApps%, nAppID%, pchFolderBank*, cchFolderBufferSize%)
+BlitzSteamApps_GetAppInstallDir%(lpSteamApps%, nAppID%, pchFolder*, cchFolderBufferSize%)
BlitzSteamApps_IsAppInstalled%(lpSteamApps%, nAppID%)
BlitzSteamApps_GetAppOwner%(lpSteamApps%)
BlitzSteamApps_GetLaunchQueryParam$(lpSteamApps%, pchKey$)
-BlitzSteamApps_GetDlcDownloadProgress%(lpSteamApps%, nAppID%, pOutputBank*)
+BlitzSteamApps_GetDlcDownloadProgressEx%(lpSteamApps%, nAppID%, punBytesDownloaded%, punBytesTotal%) : "BlitzSteamApps_GetDlcDownloadProgress"
+BlitzSteamApps_GetDlcDownloadProgress%(lpSteamApps%, nAppID%, punBytesDownloaded*, punBytesTotal*)
BlitzSteamApps_GetAppBuildId%(lpSteamApps%)
+; SteamClient -------------------------------------------------------------------
+BlitzSteamClient_CreateSteamPipe%(lpSteamClient%)
+BlitzSteamClient_ReleaseSteamPipe%(lpSteamClient%, hSteamPipe%)
+BlitzSteamClient_ConnectToGlobalUser%(lpSteamClient%, hSteamPipe%)
+BlitzSteamClient_SetLocalIPBinding(lpSteamClient, unIP%, usPort%)
+BlitzSteamClient_CreateLocalUserEx%(lpSteamClient%, phSteamPipe*, eAccountType%) : "BlitzSteamClient_CreateLocalUser"
+BlitzSteamClient_CreateLocalUser%(lpSteamClient%, phSteamPipe*, eAccountType%)
+BlitzSteamClient_ReleaseUser(lpSteamClient%, hSteamPipe%, hSteamUser%)
+BlitzSteamClient_RunFrame(lpSteamClient%)
+BlitzSteamClient_GetIPCCallCount%(lpSteamClient%)
+BlitzSteamClient_ShutdownIfAllPipesClosed%(lpSteamClient%)
+; -- Interfaces
+BlitzSteamClient_GetSteamAppList%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamApps%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamController%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamFriends%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamGameServer%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamGameServerStats%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamHTMLSurface%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamHTTP%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamInventory%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamMatchmaking%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamMatchmakingServers%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamMusic%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamMusicRemote%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamNetworking%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamRemoteStorage%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamScreenshots%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamUGC%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamUnifiedMessages%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamUser%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamUserStats%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamUtils%(lpSteamClient%, hSteamPipe%, pchVersion$)
+BlitzSteamClient_GetSteamVideo%(lpSteamClient%, hSteamUser%, hSteamPipe%, pchVersion$)
+; -- Callbacks & Hooks
+BlitzSteamClient_SetWarningMessageHook(lpSteamClient%, fpFunction%)
+BlitzSteamClient_Set_SteamAPI_CPostAPIResultInProcess(lpSteamClient%, fpFunction%)
+BlitzSteamClient_Remove_SteamAPI_CPostAPIResultInProcess(lpSteamClient%, fpFunction%)
+BlitzSteamClient_Set_SteamAPI_CCheckCallbackRegisteredInProcess(lpSteamClient%, fpFunction%)
+
; SteamController ---------------------------------------------------------------
+BlitzSteamController_Init%(lpSteamController%, pchAbsolutePathToControllerConfigVDF$)
+BlitzSteamController_Shutdown%(lpSteamController%)
+BlitzSteamController_RunFrame(lpSteamController%)
+BlitzSteamController_GetControllerStateEx%(lpSteamController%, unControllerIndex%, pState%) : "BlitzSteamController_GetControllerState"
+BlitzSteamController_GetControllerState%(lpSteamController%, unControllerIndex%, pState*)
+BlitzSteamController_TriggerHapticPulse(lpSteamController%, unControllerIndex%, eTargetPad%, usDurationMicroSec%)
+BlitzSteamController_SetOverrideMode(lpSteamController%, pchMode$)
\ No newline at end of file
diff --git a/Blitz/BlitzSteamUtility.bb b/Blitz/BlitzSteamUtility.bb
index 39b75a2..26e9093 100644
--- a/Blitz/BlitzSteamUtility.bb
+++ b/Blitz/BlitzSteamUtility.bb
@@ -456,16 +456,53 @@ Function BSUApps_GetAppInstallDir$(nAppID%, BankInstallDirStorage=0)
If BSUInitialized Then
If BankInstallDirStorage = 0 Then
; Create temporary storage.
+ BankInstallDir = CreateBank(BankInstallDirSz)
Else
; Reuse existing storage.
BankInstallDir = BankInstallDirStorage
- BankInstallDirSz =
+ BankInstallDirSz = BankSize(BankInstallDir)
EndIf
+
+ ; Request install dir from Steam.
+ Local InstallDirLen% = BlitzSteamApps_GetAppInstallDir(BSUApps, nAppID, BankInstallDir, BankInstallDirSz)
+
+ ; Read returned value.
+ InstallDir = BSU_PeekCString(BankInstallDir, 0)
+
+ ; Free temporary storage.
+ If BankInstallDirStorage = 0 Then FreeBank BankInstallDir
EndIf
Return InstallDir$
End Function
+Function BSUApps_GetDLCDownloadProgress#(nAppID%)
+ Local Progress# = 1.0
+ If BSUInitialized
+ ; Create temporary storage.
+ Local i64_Downloaded, i64_Total
+ i64_Downloaded = BlitzSteamInt64_New()
+ i64_Total = BlitzSteamInt64_New()
+
+ ; Request download progress from Steam.
+ If BlitzSteamApps_GetDlcDownloadProgressEx(BSUApps, nAppID, i64_Downloaded, i64_Total) Then
+ Local dDownloaded, dTotal
+ dDownloaded = BlitzSteamInt64_ToDouble(i64_Downloaded)
+ dTotal = BlitzSteamInt64_ToDouble(i64_Total)
+
+ BlitzSteamDouble_DivP dDownloaded, dTotal
+ Progress = BlitzSteamDouble_ToFloat(dDownloaded)
+
+ BlitzSteamDouble_Destroy dDownloaded
+ BlitzSteamDouble_Destroy dTotal
+ EndIf
+
+ ; Free temporary storage.
+ BlitzSteamInt64_Destroy i64_Downloaded
+ BlitzSteamInt64_Destroy i64_Total
+ EndIf
+ Return Progress
+End Function
+
;~IDEal Editor Parameters:
-;~F#18#1E#24#35#4A#63#82#A0#DD#F9#116#146#178
;~C#Blitz3D
\ No newline at end of file
diff --git a/BlitzPointerLink.cpp b/BlitzPointerLink.cpp
deleted file mode 100644
index 3c1d892..0000000
--- a/BlitzPointerLink.cpp
+++ /dev/null
@@ -1,5 +0,0 @@
-#include "BlitzPointer.h"
-
-uint32_t BlitzPointer_CallFunction0(uint32_t fpFunctionPointer) {
-
-}
\ No newline at end of file
diff --git a/BlitzSteam.vcxproj b/BlitzSteam.vcxproj
index 7ac2185..82885b4 100644
--- a/BlitzSteam.vcxproj
+++ b/BlitzSteam.vcxproj
@@ -138,6 +138,8 @@
+
+
diff --git a/BlitzSteam.vcxproj.filters b/BlitzSteam.vcxproj.filters
index 26f73d7..08803af 100644
--- a/BlitzSteam.vcxproj.filters
+++ b/BlitzSteam.vcxproj.filters
@@ -17,6 +17,9 @@
{3072c53c-2be5-4712-b853-1bc1438cdc6e}
+
+ {a6fc08f6-97d9-4a53-a803-34b985d9ae7c}
+
@@ -34,9 +37,6 @@
Source Files\Libraries
-
- Source Files
-
Source Files\Wrapper
@@ -46,6 +46,15 @@
Source Files\Wrapper
+
+ Source Files\Helpers
+
+
+ Source Files
+
+
+ Source Files\Helpers
+
diff --git a/Helpers/Double.cpp b/Helpers/Double.cpp
new file mode 100644
index 0000000..97e709c
--- /dev/null
+++ b/Helpers/Double.cpp
@@ -0,0 +1,129 @@
+// BlitzSteam - Steam wrapper for Blitz.
+// Copyright (C) 2015 Project Kube (Michael Fabian Dirks)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+
+#include "dllmain.h"
+#include
+#include
+
+#pragma region Construction & Destruction
+DLL_EXPORT double_t* BlitzSteamDouble_New() {
+ return new double_t;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_New=_BlitzSteamDouble_New@0")
+
+DLL_EXPORT double_t* BlitzSteamDouble_Copy(double_t* other) {
+ double_t* pthis = new double_t;
+ *pthis = *other;
+ return pthis;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_Copy=_BlitzSteamDouble_Copy@4")
+
+DLL_EXPORT void BlitzSteamDouble_Delete(double_t* pthis) {
+ delete pthis;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_Delete=_BlitzSteamDouble_Delete@4")
+#pragma endregion Construction & Destruction
+
+#pragma region Math
+DLL_EXPORT void BlitzSteamDouble_SetP(double_t* pthis, double_t* other) { *pthis = *other; }
+DLL_EXPORT void BlitzSteamDouble_SetF(double_t* pthis, float_t other) { *pthis = other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SetP=_BlitzSteamDouble_SetP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SetF=_BlitzSteamDouble_SetF@8")
+
+DLL_EXPORT void BlitzSteamDouble_AddP(double_t* pthis, double_t* other) { *pthis += *other; }
+DLL_EXPORT void BlitzSteamDouble_AddF(double_t* pthis, float_t other) { *pthis += other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_AddP=_BlitzSteamDouble_AddP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_AddF=_BlitzSteamDouble_AddF@8")
+
+DLL_EXPORT void BlitzSteamDouble_SubP(double_t* pthis, double_t* other) { *pthis -= *other; }
+DLL_EXPORT void BlitzSteamDouble_SubF(double_t* pthis, float_t other) { *pthis -= other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SubP=_BlitzSteamDouble_SubP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SubF=_BlitzSteamDouble_SubF@8")
+
+DLL_EXPORT void BlitzSteamDouble_MulP(double_t* pthis, double_t* other) { *pthis *= *other; }
+DLL_EXPORT void BlitzSteamDouble_MulF(double_t* pthis, float_t other) { *pthis *= other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_MulP=_BlitzSteamDouble_MulP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_MulF=_BlitzSteamDouble_MulF@8")
+
+DLL_EXPORT void BlitzSteamDouble_DivP(double_t* pthis, double_t* other) { *pthis /= *other; }
+DLL_EXPORT void BlitzSteamDouble_DivF(double_t* pthis, float_t other) { *pthis /= other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_DivP=_BlitzSteamDouble_DivP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_DivF=_BlitzSteamDouble_DivF@8")
+#pragma endregion Math
+
+#pragma region Comparison
+DLL_EXPORT uint32_t BlitzSteamDouble_EqualsP(double_t* pthis, double_t* other) { return *pthis == *other; }
+DLL_EXPORT uint32_t BlitzSteamDouble_EqualsF(double_t* pthis, float_t other) { return *pthis == other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_EqualsP=_BlitzSteamDouble_EqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_EqualsF=_BlitzSteamDouble_EqualsF@8")
+
+DLL_EXPORT uint32_t BlitzSteamDouble_GEqualsP(double_t* pthis, double_t* other) { return *pthis >= *other; }
+DLL_EXPORT uint32_t BlitzSteamDouble_GEqualsF(double_t* pthis, float_t other) { return *pthis >= other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_GEqualsP=_BlitzSteamDouble_GEqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_GEqualsF=_BlitzSteamDouble_GEqualsF@8")
+
+DLL_EXPORT uint32_t BlitzSteamDouble_SEqualsP(double_t* pthis, double_t* other) { return *pthis <= *other; }
+DLL_EXPORT uint32_t BlitzSteamDouble_SEqualsF(double_t* pthis, float_t other) { return *pthis <= other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SEqualsP=_BlitzSteamDouble_SEqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SEqualsF=_BlitzSteamDouble_SEqualsF@8")
+
+DLL_EXPORT uint32_t BlitzSteamDouble_GreaterP(double_t* pthis, double_t* other) { return *pthis > *other; }
+DLL_EXPORT uint32_t BlitzSteamDouble_GreaterF(double_t* pthis, float_t other) { return *pthis > other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_GreaterP=_BlitzSteamDouble_GreaterP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_GreaterF=_BlitzSteamDouble_GreaterF@8")
+
+DLL_EXPORT uint32_t BlitzSteamDouble_SmallerP(double_t* pthis, double_t* other) { return *pthis < *other; }
+DLL_EXPORT uint32_t BlitzSteamDouble_SmallerF(double_t* pthis, float_t other) { return *pthis < other; }
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SmallerP=_BlitzSteamDouble_SmallerP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_SmallerF=_BlitzSteamDouble_SmallerF@8")
+#pragma endregion Comparison
+
+#pragma region Conversion
+DLL_EXPORT const char* BlitzSteamDouble_ToString(double_t* pthis) {
+ std::stringstream stream;
+ stream << *pthis;
+ return stream.str().c_str();
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_ToString=_BlitzSteamDouble_ToString@4")
+
+// Double <-> Float
+DLL_EXPORT float_t BlitzSteamDouble_ToFloat(double_t* pthis) { return (float_t)*pthis; }
+DLL_EXPORT double_t* BlitzSteamDouble_FromFloat(float_t other) {
+ double_t* val = new double_t;
+ *val = (double_t)other;
+ return val;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_ToFloat=_BlitzSteamDouble_ToFloat@4")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_FromFloat=_BlitzSteamDouble_FromFloat@4")
+
+// Double <-> Int32
+DLL_EXPORT int32_t BlitzSteamDouble_ToInt32(double_t* pthis) { return (int32_t)*pthis; }
+DLL_EXPORT double_t* BlitzSteamDouble_FromInt32(int32_t other) {
+ double_t* val = new double_t;
+ *val = (double_t)other;
+ return val;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_ToInt32=_BlitzSteamDouble_ToInt32@4")
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_FromInt32=_BlitzSteamDouble_FromInt32@4")
+
+// Double -> Int64
+DLL_EXPORT int64_t* BlitzSteamDouble_ToInt64(double_t* pthis) {
+ int64_t* val = new int64_t;
+ *val = (int64_t)*pthis;
+ return val;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamDouble_ToInt64=_BlitzSteamDouble_ToInt64@4")
+#pragma endregion Conversion
diff --git a/Helper.cpp b/Helpers/Helper.cpp
similarity index 100%
rename from Helper.cpp
rename to Helpers/Helper.cpp
diff --git a/Helpers/Int64.cpp b/Helpers/Int64.cpp
new file mode 100644
index 0000000..2980136
--- /dev/null
+++ b/Helpers/Int64.cpp
@@ -0,0 +1,124 @@
+// BlitzSteam - Steam wrapper for Blitz.
+// Copyright (C) 2015 Project Kube (Michael Fabian Dirks)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+
+#include "dllmain.h"
+#include
+#include
+
+#pragma region Construction & Destruction
+DLL_EXPORT int64_t* BlitzSteamInt64_New() {
+ return new int64_t;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_New=_BlitzSteamInt64_New@0")
+
+DLL_EXPORT int64_t* BlitzSteamInt64_Copy(int64_t* other) {
+ int64_t* pthis = new int64_t;
+ *pthis = *other;
+ return pthis;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_Copy=_BlitzSteamInt64_Copy@4")
+
+DLL_EXPORT void BlitzSteamInt64_Destroy(int64_t* pthis) {
+ delete pthis;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_Destroy=_BlitzSteamInt64_Destroy@4")
+#pragma endregion Construction & Destruction
+
+#pragma region Math
+DLL_EXPORT void BlitzSteamInt64_SetP(int64_t* pthis, int64_t* other) { *pthis = *other; }
+DLL_EXPORT void BlitzSteamInt64_SetV(int64_t* pthis, uint32_t left, uint32_t right) { *pthis = ((int64_t)left << 32) + right; }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SetP=_BlitzSteamInt64_SetP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SetV=_BlitzSteamInt64_SetV@12")
+
+DLL_EXPORT void BlitzSteamInt64_AddP(int64_t* pthis, int64_t* other) { *pthis += *other; }
+DLL_EXPORT void BlitzSteamInt64_AddV(int64_t* pthis, uint32_t left, uint32_t right) { *pthis += ((int64_t)left << 32) + right; }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_AddP=_BlitzSteamInt64_AddP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_AddV=_BlitzSteamInt64_AddV@12")
+
+DLL_EXPORT void BlitzSteamInt64_SubP(int64_t* pthis, int64_t* other) { *pthis -= *other; }
+DLL_EXPORT void BlitzSteamInt64_SubV(int64_t* pthis, uint32_t left, uint32_t right) { *pthis -= ((int64_t)left << 32) + right; }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SubP=_BlitzSteamInt64_SubP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SubV=_BlitzSteamInt64_SubV@12")
+
+DLL_EXPORT void BlitzSteamInt64_MulP(int64_t* pthis, int64_t* other) { *pthis *= *other; }
+DLL_EXPORT void BlitzSteamInt64_MulV(int64_t* pthis, uint32_t left, uint32_t right) { *pthis *= ((int64_t)left << 32) + right; }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_MulP=_BlitzSteamInt64_MulP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_MulV=_BlitzSteamInt64_MulV@12")
+
+DLL_EXPORT void BlitzSteamInt64_DivP(int64_t* pthis, int64_t* other) { *pthis *= *other; }
+DLL_EXPORT void BlitzSteamInt64_DivV(int64_t* pthis, uint32_t left, uint32_t right) { *pthis *= ((int64_t)left << 32) + right; }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_DivP=_BlitzSteamInt64_DivP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_DivV=_BlitzSteamInt64_DivV@12")
+#pragma endregion Math
+
+#pragma region Comparison
+DLL_EXPORT uint32_t BlitzSteamInt64_EqualsP(int64_t* pthis, int64_t* other) { return (*pthis == *other); }
+DLL_EXPORT uint32_t BlitzSteamInt64_EqualsV(int64_t* pthis, uint32_t left, uint32_t right) { return (*pthis == ((int64_t)left << 32) + right); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_EqualsP=_BlitzSteamInt64_EqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_EqualsV=_BlitzSteamInt64_EqualsV@12")
+
+DLL_EXPORT uint32_t BlitzSteamInt64_GEqualsP(int64_t* pthis, int64_t* other) { return (*pthis >= *other); }
+DLL_EXPORT uint32_t BlitzSteamInt64_GEqualsV(int64_t* pthis, uint32_t left, uint32_t right) { return (*pthis >= ((int64_t)left << 32) + right); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_GEqualsP=_BlitzSteamInt64_GEqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_GEqualsV=_BlitzSteamInt64_GEqualsV@12")
+
+DLL_EXPORT uint32_t BlitzSteamInt64_SEqualsP(int64_t* pthis, int64_t* other) { return (*pthis <= *other); }
+DLL_EXPORT uint32_t BlitzSteamInt64_SEqualsV(int64_t* pthis, uint32_t left, uint32_t right) { return (*pthis <= ((int64_t)left << 32) + right); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SEqualsP=_BlitzSteamInt64_SEqualsP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SEqualsV=_BlitzSteamInt64_SEqualsV@12")
+
+DLL_EXPORT uint32_t BlitzSteamInt64_GreaterP(int64_t* pthis, int64_t* other) { return (*pthis > *other); }
+DLL_EXPORT uint32_t BlitzSteamInt64_GreaterV(int64_t* pthis, uint32_t left, uint32_t right) { return (*pthis > ((int64_t)left << 32) + right); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_GreaterP=_BlitzSteamInt64_GreaterP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_GreaterV=_BlitzSteamInt64_GreaterV@12")
+
+DLL_EXPORT uint32_t BlitzSteamInt64_SmallerP(int64_t* pthis, int64_t* other) { return (*pthis < *other); }
+DLL_EXPORT uint32_t BlitzSteamInt64_SmallerV(int64_t* pthis, uint32_t left, uint32_t right) { return (*pthis < ((int64_t)left << 32) + right); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SmallerP=_BlitzSteamInt64_SmallerP@8")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_SmallerV=_BlitzSteamInt64_SmallerV@12")
+#pragma endregion Comparison
+
+#pragma region Conversion
+DLL_EXPORT const char* BlitzSteamInt64_ToString(int64_t* pthis) {
+ std::stringstream stream;
+ stream << *pthis;
+ return stream.str().c_str();
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_ToString=_BlitzSteamInt64_ToString@4")
+
+// Int64 -> Int32
+DLL_EXPORT int32_t BlitzSteamInt64_ValueL(int64_t* pthis) { return (int32_t)((*pthis) >> 32); }
+DLL_EXPORT int32_t BlitzSteamInt64_ValueR(int64_t* pthis) { return (int32_t)((*pthis) && 0xFFFFFFFF); }
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_ValueL=_BlitzSteamInt64_ValueL@4")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_ValueR=_BlitzSteamInt64_ValueR@4")
+
+// Int64 <-> Float
+DLL_EXPORT float BlitzSteamInt64_ToFloat(int64_t* pthis) { return (float)*pthis; }
+DLL_EXPORT int64_t* BlitzSteamInt64_FromFloat(float_t other) {
+ int64_t val = (int64_t)other;
+ return BlitzSteamInt64_Copy(&val);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_ToFloat=_BlitzSteamInt64_ToFloat@4")
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_FromFloat=_BlitzSteamInt64_FromFloat@4")
+
+// Int64 -> Double
+DLL_EXPORT double_t* BlitzSteamInt64_ToDouble(int64_t* pthis) {
+ double_t* val = new double_t;
+ *val = (double_t)*pthis;
+ return val;
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamInt64_ToDouble=_BlitzSteamInt64_ToDouble@4")
+#pragma endregion Conversion
diff --git a/Steam.cpp b/Steam.cpp
deleted file mode 100644
index 06c1d83..0000000
--- a/Steam.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-#include "dllmain.h"
-#include "BlitzPointerLink.cpp"
-
-class BlitzSteamCallback : CCallbackBase {
-public:
- uint32_t blitzFunctionPointer;
-
- virtual void Run(void *pvParam) {
- BlitzPointer_CallFunction1((uint32_t)blitzFunctionPointer, (uint32_t)pvParam);
- }
-
- virtual void Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall) {
- BlitzPointer_CallFunction4((uint32_t)blitzFunctionPointer, (uint32_t)pvParam, bIOFailure, (uint32_t)(hSteamAPICall & 0xFFFFFFFF), (uint32_t)(hSteamAPICall >> 32));
- }
-
- virtual int GetCallbackSizeBytes() {
- return sizeof(BlitzSteamCallback);
- }
-};
-
-DLL_EXPORT void* BlitzSteam_CreateCallback(uint32_t fpFunctionPointer) {
- BlitzSteamCallback* lpBSCallback = new BlitzSteamCallback();
- lpBSCallback->blitzFunctionPointer = fpFunctionPointer;
- return lpBSCallback;
-}
-
-DLL_EXPORT void BlitzSteam_DestroyCallback(uint32_t lpCallback) {
- BlitzSteamCallback* lpBSCallback = (BlitzSteamCallback*)lpCallback;
- if (lpBSCallback != nullptr) {
- delete lpBSCallback;
- }
-}
\ No newline at end of file
diff --git a/Wrapper/SteamApps.cpp b/Wrapper/SteamApps.cpp
index dcf747b..6dad23e 100644
--- a/Wrapper/SteamApps.cpp
+++ b/Wrapper/SteamApps.cpp
@@ -126,10 +126,10 @@ DLL_EXPORT const char* BlitzSteamApps_GetLaunchQueryParam(ISteamApps* lpSteamApp
}
#pragma comment(linker, "/EXPORT:BlitzSteamApps_GetLaunchQueryParam=_BlitzSteamApps_GetLaunchQueryParam@8")
-DLL_EXPORT uint32_t BlitzSteamApps_GetDlcDownloadProgress(ISteamApps* lpSteamApps, AppId_t nAppID, uint64_t* pOutputBank) {
- return lpSteamApps->GetDlcDownloadProgress(nAppID, pOutputBank, pOutputBank + 1);
+DLL_EXPORT uint32_t BlitzSteamApps_GetDlcDownloadProgress(ISteamApps* lpSteamApps, AppId_t nAppID, uint64_t* punBytesDownloaded, uint64_t* punBytesTotal) {
+ return lpSteamApps->GetDlcDownloadProgress(nAppID, punBytesDownloaded, punBytesTotal);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamApps_GetDlcDownloadProgress=_BlitzSteamApps_GetDlcDownloadProgress@12")
+#pragma comment(linker, "/EXPORT:BlitzSteamApps_GetDlcDownloadProgress=_BlitzSteamApps_GetDlcDownloadProgress@16")
DLL_EXPORT uint32_t BlitzSteamApps_GetAppBuildId(ISteamApps* lpSteamApps) {
return lpSteamApps->GetAppBuildId();
diff --git a/Wrapper/SteamClient.cpp b/Wrapper/SteamClient.cpp
index 430a7db..a09d0b9 100644
--- a/Wrapper/SteamClient.cpp
+++ b/Wrapper/SteamClient.cpp
@@ -61,25 +61,50 @@ DLL_EXPORT uint32_t BlitzSteamClient_ShutdownIfAllPipesClosed(ISteamClient* lpSt
}
// Interfaces
-DLL_EXPORT ISteamUser* BlitzSteamClient_GetSteamUser(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamUser(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamAppList* BlitzSteamClient_GetSteamAppList(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamAppList(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUser=_BlitzSteamClient_GetSteamUser@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamAppList=_BlitzSteamClient_GetSteamAppList@16")
-DLL_EXPORT ISteamGameServer* BlitzSteamClient_GetSteamGameServer(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamGameServer(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamApps* BlitzSteamClient_GetSteamApps(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamApps(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamGameServer=_BlitzSteamClient_GetSteamGameServer@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamApps=_BlitzSteamClient_GetSteamApps@16")
+
+DLL_EXPORT ISteamController* BlitzSteamClient_GetSteamController(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamController(hSteamUser, hSteamPipe, pchVersion);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamController=_BlitzSteamClient_GetSteamController@16")
DLL_EXPORT ISteamFriends* BlitzSteamClient_GetSteamFriends(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamFriends(hSteamUser, hSteamPipe, pchVersion);
}
#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamFriends=_BlitzSteamClient_GetSteamFriends@16")
-DLL_EXPORT ISteamUtils* BlitzSteamClient_GetSteamUtils(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamUtils(hSteamPipe, pchVersion);
+DLL_EXPORT ISteamGameServer* BlitzSteamClient_GetSteamGameServer(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamGameServer(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUtils=_BlitzSteamClient_GetSteamUtils@12")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamGameServer=_BlitzSteamClient_GetSteamGameServer@16")
+
+DLL_EXPORT ISteamGameServerStats* BlitzSteamClient_GetSteamGameServerStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamGameServerStats=_BlitzSteamClient_GetSteamGameServerStats@16")
+
+DLL_EXPORT ISteamHTMLSurface* BlitzSteamClient_GetSteamHTMLSurface(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamHTMLSurface(hSteamUser, hSteamPipe, pchVersion);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamHTMLSurface=_BlitzSteamClient_GetSteamHTMLSurface@16")
+
+DLL_EXPORT ISteamHTTP* BlitzSteamClient_GetSteamHTTP(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamHTTP(hSteamUser, hSteamPipe, pchVersion);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamHTTP=_BlitzSteamClient_GetSteamHTTP@16")
+
+DLL_EXPORT ISteamInventory* BlitzSteamClient_GetSteamInventory(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamInventory(hSteamUser, hSteamPipe, pchVersion);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamInventory=_BlitzSteamClient_GetSteamInventory@16")
DLL_EXPORT ISteamMatchmaking* BlitzSteamClient_GetSteamMatchmaking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamMatchmaking(hSteamUser, hSteamPipe, pchVersion);
@@ -91,20 +116,15 @@ DLL_EXPORT ISteamMatchmakingServers* BlitzSteamClient_GetSteamMatchmakingServers
}
#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamMatchmakingServers=_BlitzSteamClient_GetSteamMatchmakingServers@16")
-DLL_EXPORT ISteamUserStats* BlitzSteamClient_GetSteamUserStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamUserStats(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamMusic* BlitzSteamClient_GetSteamMusic(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamMusic(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUserStats=_BlitzSteamClient_GetSteamUserStats@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamMusic=_BlitzSteamClient_GetSteamMusic@16")
-DLL_EXPORT ISteamGameServerStats* BlitzSteamClient_GetSteamGameServerStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamMusicRemote* BlitzSteamClient_GetSteamMusicRemote(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamMusicRemote(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamGameServerStats=_BlitzSteamClient_GetSteamGameServerStats@16")
-
-DLL_EXPORT ISteamApps* BlitzSteamClient_GetSteamApps(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamApps(hSteamUser, hSteamPipe, pchVersion);
-}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamApps=_BlitzSteamClient_GetSteamApps@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamMusicRemote=_BlitzSteamClient_GetSteamMusicRemote@16")
DLL_EXPORT ISteamNetworking* BlitzSteamClient_GetSteamNetworking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamNetworking(hSteamUser, hSteamPipe, pchVersion);
@@ -121,60 +141,39 @@ DLL_EXPORT ISteamScreenshots* BlitzSteamClient_GetSteamScreenshots(ISteamClient*
}
#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamScreenshots=_BlitzSteamClient_GetSteamScreenshots@16")
-DLL_EXPORT ISteamHTTP* BlitzSteamClient_GetSteamHTTP(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamHTTP(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamUGC* BlitzSteamClient_GetSteamUGC(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamUGC(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamHTTP=_BlitzSteamClient_GetSteamHTTP@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUGC=_BlitzSteamClient_GetSteamUGC@16")
DLL_EXPORT ISteamUnifiedMessages* BlitzSteamClient_GetSteamUnifiedMessages(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUnifiedMessages(hSteamUser, hSteamPipe, pchVersion);
}
#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUnifiedMessages=_BlitzSteamClient_GetSteamUnifiedMessages@16")
-DLL_EXPORT ISteamController* BlitzSteamClient_GetSteamController(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamController(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamUser* BlitzSteamClient_GetSteamUser(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamUser(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamController=_BlitzSteamClient_GetSteamController@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUser=_BlitzSteamClient_GetSteamUser@16")
-DLL_EXPORT ISteamUGC* BlitzSteamClient_GetSteamUGC(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamUGC(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamUserStats* BlitzSteamClient_GetSteamUserStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamUserStats(hSteamUser, hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUGC=_BlitzSteamClient_GetSteamUGC@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUserStats=_BlitzSteamClient_GetSteamUserStats@16")
-DLL_EXPORT ISteamAppList* BlitzSteamClient_GetSteamAppList(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamAppList(hSteamUser, hSteamPipe, pchVersion);
+DLL_EXPORT ISteamUtils* BlitzSteamClient_GetSteamUtils(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, const char *pchVersion) {
+ return lpSteamClient->GetISteamUtils(hSteamPipe, pchVersion);
}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamAppList=_BlitzSteamClient_GetSteamAppList@16")
-
-DLL_EXPORT ISteamMusic* BlitzSteamClient_GetSteamMusic(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamMusic(hSteamUser, hSteamPipe, pchVersion);
-}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamMusic=_BlitzSteamClient_GetSteamMusic@16")
-
-DLL_EXPORT ISteamMusicRemote* BlitzSteamClient_GetSteamMusicRemote(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamMusicRemote(hSteamUser, hSteamPipe, pchVersion);
-}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamMusicRemote=_BlitzSteamClient_GetSteamMusicRemote@16")
-
-DLL_EXPORT ISteamHTMLSurface* BlitzSteamClient_GetSteamHTMLSurface(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamHTMLSurface(hSteamUser, hSteamPipe, pchVersion);
-}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamHTMLSurface=_BlitzSteamClient_GetSteamHTMLSurface@16")
-
-DLL_EXPORT ISteamInventory* BlitzSteamClient_GetSteamInventory(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
- return lpSteamClient->GetISteamInventory(hSteamUser, hSteamPipe, pchVersion);
-}
-#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamInventory=_BlitzSteamClient_GetSteamInventory@16")
+#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamUtils=_BlitzSteamClient_GetSteamUtils@12")
DLL_EXPORT ISteamVideo* BlitzSteamClient_GetSteamVideo(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamVideo(hSteamUser, hSteamPipe, pchVersion);
}
#pragma comment(linker, "/EXPORT:BlitzSteamClient_GetSteamVideo=_BlitzSteamClient_GetSteamVideo@16")
-
// Callbacks & Hooks
-DLL_EXPORT void BlitzSteamClient_SetWarningMessageHook(ISteamClient* lpSteamClient, SteamAPIWarningMessageHook_t pfunction) {
- lpSteamClient->SetWarningMessageHook(pfunction);
+DLL_EXPORT void BlitzSteamClient_SetWarningMessageHook(ISteamClient* lpSteamClient, SteamAPIWarningMessageHook_t fpfunction) {
+ lpSteamClient->SetWarningMessageHook(fpfunction);
}
DLL_EXPORT void BlitzSteamClient_Set_SteamAPI_CPostAPIResultInProcess(ISteamClient* lpSteamClient, SteamAPI_PostAPIResultInProcess_t fpFunction) {
diff --git a/Wrapper/SteamController.cpp b/Wrapper/SteamController.cpp
index 1e31159..bd1c138 100644
--- a/Wrapper/SteamController.cpp
+++ b/Wrapper/SteamController.cpp
@@ -16,3 +16,32 @@
#include "dllmain.h"
+DLL_EXPORT uint32_t BlitzSteamController_Init(ISteamController* lpSteamController, const char* pchAbsolutePathToControllerConfigVDF) {
+ return lpSteamController->Init(pchAbsolutePathToControllerConfigVDF);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_Init=_BlitzSteamController_Init@8")
+
+DLL_EXPORT uint32_t BlitzSteamController_Shutdown(ISteamController* lpSteamController) {
+ return lpSteamController->Shutdown();
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_Shutdown=_BlitzSteamController_Shutdown@4")
+
+DLL_EXPORT void BlitzSteamController_RunFrame(ISteamController* lpSteamController) {
+ lpSteamController->RunFrame();
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_RunFrame=_BlitzSteamController_RunFrame@4")
+
+DLL_EXPORT uint32_t BlitzSteamController_GetControllerState(ISteamController* lpSteamController, uint32_t unControllerIndex, SteamControllerState_t *pState) {
+ return lpSteamController->GetControllerState(unControllerIndex, pState);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_GetControllerState=_BlitzSteamController_GetControllerState@12")
+
+DLL_EXPORT void BlitzSteamController_TriggerHapticPulse(ISteamController* lpSteamController, uint32_t unControllerIndex, ESteamControllerPad eTargetPad, uint32_t usDurationMicroSec) {
+ lpSteamController->TriggerHapticPulse(unControllerIndex, eTargetPad, usDurationMicroSec);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_TriggerHapticPulse=_BlitzSteamController_TriggerHapticPulse@16")
+
+DLL_EXPORT void BlitzSteamController_SetOverrideMode(ISteamController* lpSteamController, const char *pchMode) {
+ lpSteamController->SetOverrideMode(pchMode);
+}
+#pragma comment(linker, "/EXPORT:BlitzSteamController_SetOverrideMode=_BlitzSteamController_SetOverrideMode@8")
\ No newline at end of file
diff --git a/Wrapper/SteamFriends.cpp b/Wrapper/SteamFriends.cpp
new file mode 100644
index 0000000..1e31159
--- /dev/null
+++ b/Wrapper/SteamFriends.cpp
@@ -0,0 +1,18 @@
+// BlitzSteam - Steam wrapper for Blitz.
+// Copyright (C) 2015 Project Kube (Michael Fabian Dirks)
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+
+#include "dllmain.h"
+
diff --git a/Wrapper/SteamGameServer.cpp b/Wrapper/SteamGameServer.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamGameServerStats.cpp b/Wrapper/SteamGameServerStats.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamHTMLSurface.cpp b/Wrapper/SteamHTMLSurface.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamHTTP.cpp b/Wrapper/SteamHTTP.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamInventory.cpp b/Wrapper/SteamInventory.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamMatchmaking.cpp b/Wrapper/SteamMatchmaking.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamMatchmakingServer.cpp b/Wrapper/SteamMatchmakingServer.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamMusic.cpp b/Wrapper/SteamMusic.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamMusicRemote.cpp b/Wrapper/SteamMusicRemote.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamNetworking.cpp b/Wrapper/SteamNetworking.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamRemoteStorage.cpp b/Wrapper/SteamRemoteStorage.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamScreenshots.cpp b/Wrapper/SteamScreenshots.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamUGC.cpp b/Wrapper/SteamUGC.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamUnifiedMessages.cpp b/Wrapper/SteamUnifiedMessages.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamUserStats.cpp b/Wrapper/SteamUserStats.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamUtils.cpp b/Wrapper/SteamUtils.cpp
new file mode 100644
index 0000000..e69de29
diff --git a/Wrapper/SteamVideo.cpp b/Wrapper/SteamVideo.cpp
new file mode 100644
index 0000000..e69de29