// BlitzSteam - Steam wrapper for Blitz // Copyright (C) 2015 Xaymar (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 "BlitzSteam.h" //----------------------------------------------------------------------------- // Purpose: interface to app data //----------------------------------------------------------------------------- DLL(ISteamApps*) BS_SteamApps() { return SteamApps(); } DLL(int32_t) BS_ISteamApps_IsSubscribed(ISteamApps* lpSteamApps) { return lpSteamApps->BIsSubscribed(); } DLL(int32_t) BS_ISteamApps_IsLowViolence(ISteamApps* lpSteamApps) { return lpSteamApps->BIsLowViolence(); } DLL(int32_t) BS_ISteamApps_IsCybercafe(ISteamApps* lpSteamApps) { return lpSteamApps->BIsCybercafe(); } DLL(int32_t) BS_ISteamApps_IsVACBanned(ISteamApps* lpSteamApps) { return lpSteamApps->BIsVACBanned(); } DLL(const char*) BS_ISteamApps_GetCurrentGameLanguage(ISteamApps* lpSteamApps) { return lpSteamApps->GetCurrentGameLanguage(); } DLL(const char*) BS_ISteamApps_GetAvailableGameLanguages(ISteamApps* lpSteamApps) { return lpSteamApps->GetAvailableGameLanguages(); } // only use this member if you need to check ownership of another game related to yours, a demo for example DLL(int32_t) BS_ISteamApps_IsSubscribedApp(ISteamApps* lpSteamApps, AppId_t appID) { return lpSteamApps->BIsSubscribedApp(appID); } // Takes AppID of DLC and checks if the user owns the DLC & if the DLC is installed DLL(int32_t) BS_ISteamApps_IsDlcInstalled(ISteamApps* lpSteamApps, AppId_t appID) { return lpSteamApps->BIsDlcInstalled(appID); } // returns the Unix time of the purchase of the app DLL(int32_t) BS_ISteamApps_GetEarliestPurchaseUnixTime(ISteamApps* lpSteamApps, AppId_t appID) { return lpSteamApps->GetEarliestPurchaseUnixTime(appID); } // Checks if the user is subscribed to the current app through a free weekend // This function will return false for users who have a retail or other type of license // Before using, please ask your Valve technical contact how to package and secure your free weekened DLL(int32_t) BS_ISteamApps_IsSubscribedFromFreeWeekend(ISteamApps* lpSteamApps) { return lpSteamApps->BIsSubscribedFromFreeWeekend(); } // Returns the number of DLC pieces for the running app DLL(int32_t) BS_ISteamApps_GetDLCCount(ISteamApps* lpSteamApps) { return lpSteamApps->GetDLCCount(); } // Returns metadata for DLC by index, of range [0, GetDLCCount()] DLL(int32_t) BS_ISteamApps_GetDLCDataByIndex(ISteamApps* lpSteamApps, uint32_t iDLC, AppId_t *pAppIdBuffer, bool* pbAvailableBuffer, char *pchNameBuffer, uint32_t cchNameBufferSize) { return lpSteamApps->BGetDLCDataByIndex(iDLC, pAppIdBuffer, (bool*)pbAvailableBuffer, pchNameBuffer, cchNameBufferSize); } // Install/Uninstall control for optional DLC DLL(void) BS_ISteamApps_InstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) { lpSteamApps->InstallDLC(nAppID); } DLL(void) BS_ISteamApps_UninstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) { lpSteamApps->UninstallDLC(nAppID); } // Request cd-key for yourself or owned DLC. If you are interested in this // data then make sure you provide us with a list of valid keys to be distributed // to users when they purchase the game, before the game ships. // You'll receive an AppProofOfPurchaseKeyResponse_t callback when // the key is available (which may be immediately). DLL(void) BS_ISteamApps_RequestAppProofOfPurchaseKey(ISteamApps* lpSteamApps, AppId_t nAppID) { lpSteamApps->RequestAppProofOfPurchaseKey(nAppID); } // returns current beta branch name, 'public' is the default branch DLL(int32_t) BS_ISteamApps_GetCurrentBetaName(ISteamApps* lpSteamApps, char* pchNameBuffer, int cchNameBufferSize) { return lpSteamApps->GetCurrentBetaName(pchNameBuffer, cchNameBufferSize); } // signal Steam that game files seems corrupt or missing DLL(int32_t) BS_ISteamApps_MarkContentCorrupt(ISteamApps* lpSteamApps, uint32_t bMissingFilesOnly) { return lpSteamApps->MarkContentCorrupt(bMissingFilesOnly != 0); } // return installed depots in mount order DLL(int32_t) BS_ISteamApps_GetInstalledDepots(ISteamApps* lpSteamApps, AppId_t nAppID, DepotId_t *pDepotsBuffer, uint32_t cMaxDepots) { return lpSteamApps->GetInstalledDepots(nAppID, pDepotsBuffer, cMaxDepots); } // returns current app install folder for AppID, returns folder name length DLL(int32_t) BS_ISteamApps_GetAppInstallDir(ISteamApps* lpSteamApps, AppId_t appID, char *pchFolderBuffer, uint32_t cchFolderBufferSize) { return lpSteamApps->GetAppInstallDir(appID, pchFolderBuffer, cchFolderBufferSize); } // returns true if that app is installed (not necessarily owned) DLL(int32_t) BS_ISteamApps_IsAppInstalled(ISteamApps* lpSteamApps, AppId_t appID) { return lpSteamApps->BIsAppInstalled(appID); } // returns the SteamID of the original owner. If different from current user, it's borrowed DLL(CSteamID*) BS_ISteamApps_GetAppOwner(ISteamApps* lpSteamApps) { return new CSteamID(lpSteamApps->GetAppOwner()); } // Returns the associated launch param if the game is run via steam://run///?param1=value1;param2=value2;param3=value3 etc. // Parameter names starting with the character '@' are reserved for internal use and will always return and empty string. // Parameter names starting with an underscore '_' are reserved for steam features -- they can be queried by the game, // but it is advised that you not param names beginning with an underscore for your own features. DLL(const char*) BS_ISteamApps_GetLaunchQueryParam(ISteamApps* lpSteamApps, const char *pchKey) { return lpSteamApps->GetLaunchQueryParam(pchKey); } // get download progress for optional DLC DLL(int32_t) BS_ISteamApps_GetDlcDownloadProgress(ISteamApps* lpSteamApps, AppId_t nAppID, uint64_t* pLLBytesDownloaded, uint64_t* pLLBytesTotal) { return lpSteamApps->GetDlcDownloadProgress(nAppID, pLLBytesDownloaded, pLLBytesTotal); } // return the buildid of this app, may change at any time based on backend updates to the game DLL(int32_t) BS_ISteamApps_GetAppBuildId(ISteamApps* lpSteamApps) { return lpSteamApps->GetAppBuildId(); }