Implement SteamController Wrapper. Update Blitz-side files. Remove obsolete files.

This commit is contained in:
Michael Dirks
2015-06-06 21:15:41 +02:00
parent 7418113032
commit 9c80d60c1e
31 changed files with 637 additions and 110 deletions
+107
View File
@@ -14,6 +14,113 @@
; You should have received a copy of the GNU Lesser General Public License
; along with this program. If not, see <http:;www.gnu.org/licenses/>.
; 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
;----------------------------------------------------------------
+120 -10
View File
@@ -15,14 +15,76 @@
; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.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$)
+39 -2
View File
@@ -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