This commit is contained in:
Michael Fabain Dirks
2016-05-08 22:46:41 +02:00
parent d4de6a5e7b
commit 6a44064f25
82 changed files with 8391 additions and 7473 deletions
+1 -1
View File
@@ -1 +1 @@
/SteamworksSDK/* /SteamworksSDK/*
+32 -32
View File
@@ -1,33 +1,33 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
#include <windows.h> #include <windows.h>
uint32_t WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { uint32_t WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
switch (fdwReason) { switch (fdwReason) {
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
break; break;
case DLL_PROCESS_DETACH: case DLL_PROCESS_DETACH:
break; break;
case DLL_THREAD_ATTACH: case DLL_THREAD_ATTACH:
break; break;
case DLL_THREAD_DETACH: case DLL_THREAD_DETACH:
break; break;
} }
return true; return true;
} }
+26 -26
View File
@@ -1,26 +1,26 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
// Our Stuff // Our Stuff
#include "Helpers/BlitzPointer.h" #include "Helpers/BlitzPointer.h"
#include "Types/BlitzCallback.h" #include "Types/BlitzCallback.h"
#include "Types/CSteamID.h" #include "Types/CSteamID.h"
#include "Types/Double.h" #include "Types/Double.h"
#include "Types/Long.h" #include "Types/Long.h"
#include "Types/Memory.h" #include "Types/Memory.h"
+8 -2
View File
@@ -59,7 +59,7 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WholeProgramOptimization>false</WholeProgramOptimization> <WholeProgramOptimization>false</WholeProgramOptimization>
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat> <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<BufferSecurityCheck>false</BufferSecurityCheck> <BufferSecurityCheck>false</BufferSecurityCheck>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<StructMemberAlignment>4Bytes</StructMemberAlignment> <StructMemberAlignment>4Bytes</StructMemberAlignment>
@@ -156,12 +156,15 @@
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="BlitzSteam.cpp" /> <ClCompile Include="BlitzSteam.cpp" />
<ClCompile Include="Helpers\BlitzPointer.cpp" />
<ClCompile Include="Helpers\Helper.cpp" /> <ClCompile Include="Helpers\Helper.cpp" />
<ClCompile Include="Types\BlitzCallback.cpp" /> <ClCompile Include="Types\BlitzCallback.cpp" />
<ClCompile Include="Types\CSteamID.cpp" /> <ClCompile Include="Types\CSteamID.cpp" />
<ClCompile Include="Types\Double.cpp" /> <ClCompile Include="Types\Double.cpp" />
<ClCompile Include="Types\SteamMatchmakingTypes.cpp" />
<ClCompile Include="Types\Long.cpp" /> <ClCompile Include="Types\Long.cpp" />
<ClCompile Include="Types\Memory.cpp" /> <ClCompile Include="Types\Memory.cpp" />
<ClCompile Include="Types\SteamTypes.cpp" />
<ClCompile Include="Wrapper\Steam.cpp" /> <ClCompile Include="Wrapper\Steam.cpp" />
<ClCompile Include="Wrapper\SteamAppList.cpp" /> <ClCompile Include="Wrapper\SteamAppList.cpp" />
<ClCompile Include="Wrapper\SteamApps.cpp" /> <ClCompile Include="Wrapper\SteamApps.cpp" />
@@ -195,15 +198,17 @@
<ClInclude Include="Types\BlitzCallback.h" /> <ClInclude Include="Types\BlitzCallback.h" />
<ClInclude Include="Types\CSteamID.h" /> <ClInclude Include="Types\CSteamID.h" />
<ClInclude Include="Types\Double.h" /> <ClInclude Include="Types\Double.h" />
<ClInclude Include="Types\SteamMatchmakingTypes.h" />
<ClInclude Include="Types\Long.h" /> <ClInclude Include="Types\Long.h" />
<ClInclude Include="Types\Memory.h" /> <ClInclude Include="Types\Memory.h" />
<ClInclude Include="Types\SteamTypes.h" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="Resources\BlitzSteam.bb" /> <None Include="Resources\BlitzSteam.bb" />
<None Include="Resources\BlitzSteam.ipf" /> <None Include="Resources\BlitzSteam.ipf" />
<None Include="Resources\BlitzSteamUtility.bb" /> <None Include="Resources\BlitzSteamUtility.bb" />
<None Include="Resources\Decls\BlitzSteam.decls" /> <None Include="Resources\Decls\BlitzSteam.decls" />
<None Include="Resources\Decls\BlitzSteam_BlitzCallback.decls" /> <None Include="Resources\Decls\BlitzSteam_Callback.decls" />
<None Include="Resources\Decls\BlitzSteam_CSteamID.decls" /> <None Include="Resources\Decls\BlitzSteam_CSteamID.decls" />
<None Include="Resources\Decls\BlitzSteam_Double.decls" /> <None Include="Resources\Decls\BlitzSteam_Double.decls" />
<None Include="Resources\Decls\BlitzSteam_Long.decls" /> <None Include="Resources\Decls\BlitzSteam_Long.decls" />
@@ -221,6 +226,7 @@
<None Include="Resources\Decls\BlitzSteam_SteamInventory.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamInventory.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamMatchmaking.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamMatchmaking.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamMatchmakingServers.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamMatchmakingServers.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamMatchmakingTypes.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamMusic.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamMusic.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamMusicRemote.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamMusicRemote.decls" />
<None Include="Resources\Decls\BlitzSteam_SteamNetworking.decls" /> <None Include="Resources\Decls\BlitzSteam_SteamNetworking.decls" />
+21 -3
View File
@@ -128,6 +128,15 @@
<ClCompile Include="Types\Memory.cpp"> <ClCompile Include="Types\Memory.cpp">
<Filter>Source Files\Types</Filter> <Filter>Source Files\Types</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Types\SteamMatchmakingTypes.cpp">
<Filter>Source Files\Types</Filter>
</ClCompile>
<ClCompile Include="Types\SteamTypes.cpp">
<Filter>Source Files\Types</Filter>
</ClCompile>
<ClCompile Include="Helpers\BlitzPointer.cpp">
<Filter>Source Files\Helpers</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="BlitzSteam.h"> <ClInclude Include="BlitzSteam.h">
@@ -157,6 +166,12 @@
<ClInclude Include="BlitzSteamInternal.h"> <ClInclude Include="BlitzSteamInternal.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Types\SteamMatchmakingTypes.h">
<Filter>Header Files\Types</Filter>
</ClInclude>
<ClInclude Include="Types\SteamTypes.h">
<Filter>Header Files\Types</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="$(ProjectDir)\Blitz\*.*" /> <None Include="$(ProjectDir)\Blitz\*.*" />
@@ -200,9 +215,6 @@
<None Include="Resources\Decls\BlitzSteam.decls"> <None Include="Resources\Decls\BlitzSteam.decls">
<Filter>Resource Files\Decls</Filter> <Filter>Resource Files\Decls</Filter>
</None> </None>
<None Include="Resources\Decls\BlitzSteam_BlitzCallback.decls">
<Filter>Resource Files\Decls</Filter>
</None>
<None Include="Resources\Decls\BlitzSteam_CSteamID.decls"> <None Include="Resources\Decls\BlitzSteam_CSteamID.decls">
<Filter>Resource Files\Decls</Filter> <Filter>Resource Files\Decls</Filter>
</None> </None>
@@ -293,6 +305,12 @@
<None Include="Resources\BlitzSteam.LICENSE.lesser"> <None Include="Resources\BlitzSteam.LICENSE.lesser">
<Filter>Resource Files</Filter> <Filter>Resource Files</Filter>
</None> </None>
<None Include="Resources\Decls\BlitzSteam_SteamMatchmakingTypes.decls">
<Filter>Resource Files\Decls</Filter>
</None>
<None Include="Resources\Decls\BlitzSteam_Callback.decls">
<Filter>Resource Files\Decls</Filter>
</None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Text Include="Resources\Examples\steam_appid.txt"> <Text Include="Resources\Examples\steam_appid.txt">
+3 -3
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup /> <PropertyGroup />
</Project> </Project>
+30 -30
View File
@@ -1,31 +1,31 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
// Macros // Macros
//#define DLL_FUNCTION(type) extern "C" type __stdcall //#define DLL_FUNCTION(type) extern "C" type __stdcall
#define DLL(type) extern "C" __declspec(dllexport) type __stdcall #define DLL(type) extern "C" __declspec(dllexport) type __stdcall
// C/C++ Includes // C/C++ Includes
#include <math.h> #include <math.h>
#include <stddef.h> #include <stddef.h>
#include <float.h> #include <float.h>
#include <inttypes.h> #include <inttypes.h>
// Steam // Steam
#include "SteamworksSDK/public/steam/steam_api.h" #include "SteamworksSDK/public/steam/steam_api.h"
#include "SteamworksSDK/public/steam/steam_gameserver.h" #include "SteamworksSDK/public/steam/steam_gameserver.h"
+52
View File
@@ -0,0 +1,52 @@
// 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 <http://www.gnu.org/licenses/>.
#include "BlitzPointer.h"
DLL(intptr_t) BS_BlitzPointer_GetReturnAddress() {
intptr_t BasePointer, ReturnAddress;
__asm { //ASM. Do touch if suicidal.
mov BasePointer, ebp; // Store current BasePointer
}
// Blitz uses X86 Call-Near (E8) instructions to call its own functions.
// We can simply deduce the Return Address like this because of that.
//-- Parent_EBP = *EBP
//-- Parent_RP = Parent_EBP + 16
ReturnAddress = *(intptr_t*)((*(intptr_t*)BasePointer) + 16);
return ReturnAddress;
}
DLL(intptr_t) BS_BlitzPointer_GetFunctionPointer() {
intptr_t BasePointer, ReturnAddress, FunctionPointer;
__asm { //ASM. Do touch if suicidal.
mov BasePointer, ebp; // Store current BasePointer
}
// Blitz uses X86 Call-Near (E8) instructions to call its own functions.
// We can simply deduce the Return Address like this because of that.
//-- Parent_EBP = *EBP
//-- Parent_RP = Parent_EBP + 16
ReturnAddress = *(intptr_t*)((*(intptr_t*)BasePointer) + 16);
// And since it's a Call-Near, the call is offset to the return address.
FunctionPointer = ReturnAddress + *(intptr_t*)(ReturnAddress - 4);
return FunctionPointer;
}
+36 -32
View File
@@ -1,32 +1,36 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h"
// Types of Blitz Functions.
typedef int32_t(__stdcall *BP_BlitzFunction0_t)(); DLL(intptr_t) BS_BlitzPointer_GetReturnAddress();
typedef int32_t(__stdcall *BP_BlitzFunction1_t)(int32_t); DLL(intptr_t) BS_BlitzPointer_GetFunctionPointer();
typedef int32_t(__stdcall *BP_BlitzFunction2_t)(int32_t, int32_t);
typedef int32_t(__stdcall *BP_BlitzFunction3_t)(int32_t, int32_t, int32_t); // Types of Blitz Functions.
typedef int32_t(__stdcall *BP_BlitzFunction4_t)(int32_t, int32_t, int32_t, int32_t); typedef int32_t(__stdcall *BP_BlitzFunction0_t)();
typedef int32_t(__stdcall *BP_BlitzFunction5_t)(int32_t, int32_t, int32_t, int32_t, int32_t); typedef int32_t(__stdcall *BP_BlitzFunction1_t)(int32_t);
typedef int32_t(__stdcall *BP_BlitzFunction2_t)(int32_t, int32_t);
#define BP_CallFunction0(ptr) (reinterpret_cast<BP_BlitzFunction0_t>(ptr))() typedef int32_t(__stdcall *BP_BlitzFunction3_t)(int32_t, int32_t, int32_t);
#define BP_CallFunction1(ptr, p1) (reinterpret_cast<BP_BlitzFunction1_t>(ptr))(p1) typedef int32_t(__stdcall *BP_BlitzFunction4_t)(int32_t, int32_t, int32_t, int32_t);
#define BP_CallFunction2(ptr, p1, p2) (reinterpret_cast<BP_BlitzFunction2_t>(ptr))(p1, p2) typedef int32_t(__stdcall *BP_BlitzFunction5_t)(int32_t, int32_t, int32_t, int32_t, int32_t);
#define BP_CallFunction3(ptr, p1, p2, p3) (reinterpret_cast<BP_BlitzFunction3_t>(ptr))(p1, p2, p3)
#define BP_CallFunction4(ptr, p1, p2, p3, p4) (reinterpret_cast<BP_BlitzFunction4_t>(ptr))(p1, p2, p3, p4) #define BP_CallFunction0(ptr) (ptr)()
#define BP_CallFunction5(ptr, p1, p2, p3, p4, p5) (reinterpret_cast<BP_BlitzFunction5_t>(ptr))(p1, p2, p3, p4, p5) #define BP_CallFunction1(ptr, p1) (ptr)(p1)
#define BP_CallFunction2(ptr, p1, p2) (ptr)(p1, p2)
#define BP_CallFunction3(ptr, p1, p2, p3) (ptr)(p1, p2, p3)
#define BP_CallFunction4(ptr, p1, p2, p3, p4) (ptr)(p1, p2, p3, p4)
#define BP_CallFunction5(ptr, p1, p2, p3, p4, p5) (ptr)(p1, p2, p3, p4, p5)
+59 -89
View File
@@ -1,90 +1,60 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "Helper.h" #include "Helper.h"
DLL(const char*) BS_Helper_FormatUnixTime(uint32_t unTime, const char* pchFormat) { DLL(const char*) BS_Helper_FormatUnixTime(uint32_t unTime, const char* pchFormat) {
char* output = new char[strlen(pchFormat) * 4]; char* output = new char[strlen(pchFormat) * 4];
time_t t = unTime; time_t t = unTime;
struct tm *tm = localtime(&t); struct tm *tm = localtime(&t);
strftime(output, sizeof(output), pchFormat, tm); strftime(output, sizeof(output), pchFormat, tm);
delete tm; delete tm;
return output; return output;
} }
DLL(void) BS_Helper_CopyMemoryIntMangle(void* pSource, void* pDest, int32_t iMangling, DLL(void) BS_Helper_CopyMemoryIntMangle(void* pSource, void* pDest, int32_t iMangling,
uint32_t iSourceW, uint32_t iSourceH, uint32_t iDestW, uint32_t iDestH, uint32_t iSourceW, uint32_t iSourceH, uint32_t iDestW, uint32_t iDestH,
uint32_t iAreaX, uint32_t iAreaY, uint32_t iAreaW, uint32_t iAreaH) { uint32_t iAreaX, uint32_t iAreaY, uint32_t iAreaW, uint32_t iAreaH) {
int8_t iMangleByte0 = static_cast<int8_t>((iMangling & 0xFF)); int8_t iMangleByte0 = static_cast<int8_t>((iMangling & 0xFF));
int8_t iMangleByte1 = static_cast<int8_t>((iMangling & 0xFF00) >> 8); int8_t iMangleByte1 = static_cast<int8_t>((iMangling & 0xFF00) >> 8);
int8_t iMangleByte2 = static_cast<int8_t>((iMangling & 0xFF0000) >> 16); int8_t iMangleByte2 = static_cast<int8_t>((iMangling & 0xFF0000) >> 16);
int8_t iMangleByte3 = static_cast<int8_t>((iMangling & 0xFF000000) >> 24); int8_t iMangleByte3 = static_cast<int8_t>((iMangling & 0xFF000000) >> 24);
if (pSource > pDest) { // Start at beginning
// Start at beginning for (uint32_t iY = iAreaY; iY < (iAreaY + iAreaH); iY++) {
for (uint32_t iY = iAreaY; iY < (iAreaY + iAreaH); iY++) { // Only do this once per loop
// Only do this once per loop for (uint32_t iX = iAreaX; iX < (iAreaX + iAreaW); iX++) {
for (uint32_t iX = iAreaX; iX < (iAreaX + iAreaW); iX++) { // Could technically optimize the following into single instructions, but this is fast enough for now.
// Could technically optimize the following into single instructions, but this is fast enough for now. uint32_t* pSourceOff = reinterpret_cast<uint32_t*>(pSource) + ((iSourceW * iY) + iX);
uint32_t* pSourceOff = reinterpret_cast<uint32_t*>(pSource) + ((iSourceW * iY) + iX); uint32_t* pDestOff = reinterpret_cast<uint32_t*>(pDest) + ((iDestW * iY) + iX);
uint32_t* pDestOff = reinterpret_cast<uint32_t*>(pDest) + ((iDestW * iY) + iX);
// Allow Mangling using just a single integer and checking on the fly if it's positive or negative to branch out to the correct shift.
// Allow Mangling using just a single integer and checking on the fly if it's positive or negative to branch out to the correct shift. *pDestOff =
*pDestOff = (iMangleByte0 > 0 ?
(iMangleByte0 > 0 ? (*pSourceOff & 0xFF) >> iMangleByte0 :
(*pSourceOff & 0xFF) >> iMangleByte0 : (*pSourceOff & 0xFF) << -iMangleByte0)
(*pSourceOff & 0xFF) << -iMangleByte0) + (iMangleByte1 > 0 ?
+ (iMangleByte1 > 0 ? (*pSourceOff & 0xFF00) >> iMangleByte1 :
(*pSourceOff & 0xFF00) >> iMangleByte1 : (*pSourceOff & 0xFF00) << -iMangleByte1)
(*pSourceOff & 0xFF00) << -iMangleByte1) + (iMangleByte2 > 0 ?
+ (iMangleByte2 > 0 ? (*pSourceOff & 0xFF0000) >> iMangleByte2 :
(*pSourceOff & 0xFF0000) >> iMangleByte2 : (*pSourceOff & 0xFF0000) << -iMangleByte2)
(*pSourceOff & 0xFF0000) << -iMangleByte2) + (iMangleByte3 > 0 ?
+ (iMangleByte3 > 0 ? (*pSourceOff & 0xFF000000) >> iMangleByte3 :
(*pSourceOff & 0xFF000000) >> iMangleByte3 : (*pSourceOff & 0xFF000000) << -iMangleByte3);
(*pSourceOff & 0xFF000000) << -iMangleByte3); }
} }
}
} else {
//ToDo, mirror the above. Instead of adding we subtract.
//// Start at end
//for (uint32_t iY = y + h; iY >= y; iY--) {
// pSourceOff = reinterpret_cast<uint32_t*>(pSource) + ((tw * iY) + x);
// pDestOff = reinterpret_cast<uint32_t*>(pDest) + ((tw * iY) + x);
// for (uint32_t iX = x + w; iX >= x; iX--) {
// *pDestOff =
// (iMangleByte0 > 0 ?
// (*pSourceOff & 0xFF) >> iMangleByte0 :
// (*pSourceOff & 0xFF) << -iMangleByte0)
// + (iMangleByte1 > 0 ?
// (*pSourceOff & 0xFF00) >> iMangleByte1 :
// (*pSourceOff & 0xFF00) << -iMangleByte1)
// + (iMangleByte2 > 0 ?
// (*pSourceOff & 0xFF0000) >> iMangleByte2 :
// (*pSourceOff & 0xFF0000) << -iMangleByte2)
// + (iMangleByte3 > 0 ?
// (*pSourceOff & 0xFF000000) >> iMangleByte3 :
// (*pSourceOff & 0xFF000000) << -iMangleByte3);
// // Above is some mangling magic i learned in some source code. Allows you to define a byte bit shift using a single integer.
// pSourceOff -= 1;
// pDestOff -= 1;
// }
//}
}
} }
+20 -20
View File
@@ -1,21 +1,21 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteam.h" #include "BlitzSteam.h"
#include <time.h> #include <time.h>
DLL(const char*) BS_Helper_FormatUnixTime(uint32_t unTime, const char* pchFormat); DLL(const char*) BS_Helper_FormatUnixTime(uint32_t unTime, const char* pchFormat);
File diff suppressed because it is too large Load Diff
+165 -165
View File
@@ -1,165 +1,165 @@
GNU LESSER GENERAL PUBLIC LICENSE GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below. License, supplemented by the additional permissions listed below.
0. Additional Definitions. 0. Additional Definitions.
As used herein, "this License" refers to version 3 of the GNU Lesser As used herein, "this License" refers to version 3 of the GNU Lesser
General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License, and the "GNU GPL" refers to version 3 of the GNU
General Public License. General Public License.
"The Library" refers to a covered work governed by this License, "The Library" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below. other than an Application or a Combined Work as defined below.
An "Application" is any work that makes use of an interface provided An "Application" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library. by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library. of using an interface provided by the Library.
A "Combined Work" is a work produced by combining or linking an A "Combined Work" is a work produced by combining or linking an
Application with the Library. The particular version of the Library Application with the Library. The particular version of the Library
with which the Combined Work was made is also called the "Linked with which the Combined Work was made is also called the "Linked
Version". Version".
The "Minimal Corresponding Source" for a Combined Work means the The "Minimal Corresponding Source" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version. based on the Application, and not on the Linked Version.
The "Corresponding Application Code" for a Combined Work means the The "Corresponding Application Code" for a Combined Work means the
object code and/or source code for the Application, including any data object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work. Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL. 1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL. without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions. 2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified facility is invoked), then you may convey a copy of the modified
version: version:
a) under this License, provided that you make a good faith effort to a) under this License, provided that you make a good faith effort to
ensure that, in the event an Application does not supply the ensure that, in the event an Application does not supply the
function or data, the facility still operates, and performs function or data, the facility still operates, and performs
whatever part of its purpose remains meaningful, or whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of b) under the GNU GPL, with none of the additional permissions of
this License applicable to that copy. this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files. 3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following: (ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are Library is used in it and that the Library and its use are
covered by this License. covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license b) Accompany the object code with a copy of the GNU GPL and this license
document. document.
4. Combined Works. 4. Combined Works.
You may convey a Combined Work under terms of your choice that, You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of engineering for debugging such modifications, if you also do each of
the following: the following:
a) Give prominent notice with each copy of the Combined Work that a) Give prominent notice with each copy of the Combined Work that
the Library is used in it and that the Library and its use are the Library is used in it and that the Library and its use are
covered by this License. covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license b) Accompany the Combined Work with a copy of the GNU GPL and this license
document. document.
c) For a Combined Work that displays copyright notices during c) For a Combined Work that displays copyright notices during
execution, include the copyright notice for the Library among execution, include the copyright notice for the Library among
these notices, as well as a reference directing the user to the these notices, as well as a reference directing the user to the
copies of the GNU GPL and this license document. copies of the GNU GPL and this license document.
d) Do one of the following: d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this 0) Convey the Minimal Corresponding Source under the terms of this
License, and the Corresponding Application Code in a form License, and the Corresponding Application Code in a form
suitable for, and under terms that permit, the user to suitable for, and under terms that permit, the user to
recombine or relink the Application with a modified version of recombine or relink the Application with a modified version of
the Linked Version to produce a modified Combined Work, in the the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying manner specified by section 6 of the GNU GPL for conveying
Corresponding Source. Corresponding Source.
1) Use a suitable shared library mechanism for linking with the 1) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (a) uses at run time Library. A suitable mechanism is one that (a) uses at run time
a copy of the Library already present on the user's computer a copy of the Library already present on the user's computer
system, and (b) will operate properly with a modified version system, and (b) will operate properly with a modified version
of the Library that is interface-compatible with the Linked of the Library that is interface-compatible with the Linked
Version. Version.
e) Provide Installation Information, but only if you would otherwise e) Provide Installation Information, but only if you would otherwise
be required to provide such information under section 6 of the be required to provide such information under section 6 of the
GNU GPL, and only to the extent that such information is GNU GPL, and only to the extent that such information is
necessary to install and execute a modified version of the necessary to install and execute a modified version of the
Combined Work produced by recombining or relinking the Combined Work produced by recombining or relinking the
Application with a modified version of the Linked Version. (If Application with a modified version of the Linked Version. (If
you use option 4d0, the Installation Information must accompany you use option 4d0, the Installation Information must accompany
the Minimal Corresponding Source and Corresponding Application the Minimal Corresponding Source and Corresponding Application
Code. If you use option 4d1, you must provide the Installation Code. If you use option 4d1, you must provide the Installation
Information in the manner specified by section 6 of the GNU GPL Information in the manner specified by section 6 of the GNU GPL
for conveying Corresponding Source.) for conveying Corresponding Source.)
5. Combined Libraries. 5. Combined Libraries.
You may place library facilities that are a work based on the You may place library facilities that are a work based on the
Library side by side in a single library together with other library Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your License, and convey such a combined library under terms of your
choice, if you do both of the following: choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based a) Accompany the combined library with a copy of the same work based
on the Library, uncombined with any other library facilities, on the Library, uncombined with any other library facilities,
conveyed under the terms of this License. conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it b) Give prominent notice with the combined library that part of it
is a work based on the Library, and explaining where to find the is a work based on the Library, and explaining where to find the
accompanying uncombined form of the same work. accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License. 6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License "or any later version" of the GNU Lesser General Public License "or any later version"
applies to it, you have the option of following the terms and applies to it, you have the option of following the terms and
conditions either of that published version or of any later version conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation. General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall whether future versions of the GNU Lesser General Public License shall
apply, that proxy's public statement of acceptance of any version is apply, that proxy's public statement of acceptance of any version is
permanent authorization for you to choose that version for the permanent authorization for you to choose that version for the
Library. Library.
+11 -2
View File
@@ -574,6 +574,15 @@ Const BS_EMarketingMessageFlags_PlatformLinux = 1 Shl 3
Const BS_EMarketingMessageFlags_PlatformRestrictions = BS_EMarketingMessageFlags_PlatformWindows Or BS_EMarketingMessageFlags_PlatformMac Or BS_EMarketingMessageFlags_PlatformLinux Const BS_EMarketingMessageFlags_PlatformRestrictions = BS_EMarketingMessageFlags_PlatformWindows Or BS_EMarketingMessageFlags_PlatformMac Or BS_EMarketingMessageFlags_PlatformLinux
;[End Block] ;[End Block]
;[Block] Enumeration: EMatchMakingServerResponse
;------------------------------------------------------------------------------
;! Enumeration - EMatchMakingServerResponse
;------------------------------------------------------------------------------
Const BS_EMatchMakingServerResponse_ServerResponded = 0
Const BS_EMatchMakingServerResponse_ServerFailedToRespond = 1
Const BS_EMatchMakingServerResponse_NoServersListedOnMasterServer = 2
;[End Block]
;[Block] Enumeration: ENotificationPosition ;[Block] Enumeration: ENotificationPosition
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------
;! Enumeration - ENotificationPosition ;! Enumeration - ENotificationPosition
@@ -1890,6 +1899,6 @@ End Type
;[End Block] ;[End Block]
;~IDEal Editor Parameters: ;~IDEal Editor Parameters:
;~F#13#26#31#49#60#71#7E#93#C8#E0#F5#101#110#121#14F#166#178#190#1A1#1E2 ;~F#13#26#31#49#60#71#7E#93#C8#E0#F5#101#110#121#14F#166#178#190#1A1#1E2
;~F#1EB#1F5#20C#216#220#229#232#240#24B#255#26B#27C#295#2A5#314#322#32C#33C#344#351 ;~F#1EB#1F5#20C#216#220#229#249#254#25E#274#285#29E#2AE#31D#32B#335#345#34D#35A#369
;~F#377#381#392#3A6#3A9#3BF#3F3#413#432#52E#54C#55C#569#65C#6D5#708 ;~F#377#381#392#3A6#3A9#3BF#3F3#413#432#52E#54C#55C#569#65C#6D5#708
+22 -21
View File
@@ -1,21 +1,22 @@
[IDEal Project file] [IDEal Project file]
<Settings> <Settings>
Version="1" Version="1"
Expanded="False" Expanded="True"
Icon="" Icon=""
MainFile="SteamHTMLSurface_Example.bb" MainFile="SteamMatchmakingServers_Example.bb"
Compiler="Blitz3D" Compiler="Blitz3D"
CommandLine="" CommandLine=""
</Settings> </Settings>
<Folders> <Folders>
AbsPath="\Examples" Expanded="True" AbsPath="\Examples" Expanded="True"
</Folders> </Folders>
<Files> <Files>
AbsPath="\BlitzSteam.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\BlitzSteam.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\BlitzSteamUtility.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\BlitzSteamUtility.bb" PrjFolder="" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\Examples\SteamAPI_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Examples\SteamAPI_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\Examples\SteamAppList_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Examples\SteamAppList_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\Examples\SteamApps_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Examples\SteamApps_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\Examples\SteamController_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Examples\SteamController_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
AbsPath="\Examples\SteamHTMLSurface_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False" AbsPath="\Examples\SteamHTMLSurface_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
</Files> AbsPath="\Examples\SteamMatchmakingServers_Example.bb" PrjFolder="\Examples" Line="0" Column="0" Tip="0" Visible="False"
</Files>
File diff suppressed because it is too large Load Diff
+23 -20
View File
@@ -1,20 +1,23 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Generic --------------------------------------------------------------------- ; Generic ---------------------------------------------------------------------
BS_Helper_FormatUnixTime$(unixTime%, pchFormat$) :"_BS_Helper_FormatUnixTime@8" BS_Helper_FormatUnixTime$(unixTime%, pchFormat$) :"_BS_Helper_FormatUnixTime@8"
BS_Helper_CopyMemoryIntMangle(pSource%, pDest%, iMangling%, iSourceW%, iSourceH%, iDestW%, iDestH%, iAreaX%, iAreaY%, iAreaW%, iAreaH%):"_BS_Helper_CopyMemoryIntMangle@44" BS_Helper_CopyMemoryIntMangle(pSource%, pDest%, iMangling%, iSourceW%, iSourceH%, iDestW%, iDestH%, iAreaX%, iAreaY%, iAreaW%, iAreaH%):"_BS_Helper_CopyMemoryIntMangle@44"
BS_BlitzPointer_GetReturnAddress%() :"_BS_BlitzPointer_GetReturnAddress@0"
BS_BlitzPointer_GetFunctionPointer%() :"_BS_BlitzPointer_GetFunctionPointer@0"
+33
View File
@@ -0,0 +1,33 @@
; 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 <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll"
; BlitzCallback ---------------------------------------------------------------
BS_Callback_New%(pFunction%) :"_BS_Callback_New@4"
BS_Callback_Destroy(pThis%) :"_BS_Callback_Destroy@4"
BS_Callback_GetCallbackSizeBytes%(pThis%) :"_BS_Callback_GetCallbackSizeBytes@4"
BS_Callback_SetCallback(pThis%, iCallback%) :"_BS_Callback_SetCallback@8"
BS_Callback_GetCallback%(pThis%) :"_BS_Callback_GetCallback@4"
BS_Callback_SetFunction(pThis%, pFunction%) :"_BS_Callback_SetFunction@8"
BS_Callback_GetFunction%(pThis%) :"_BS_Callback_GetFunction@4"
BS_Callback_SetRegistered(pThis%, bIsRegistered%) :"_BS_Callback_SetRegistered@8"
BS_Callback_IsRegistered%(pThis%) :"_BS_Callback_IsRegistered@4"
BS_Callback_SetGameServer(pThis%, bIsGameServer%) :"_BS_Callback_SetGameServer@8"
BS_Callback_IsGameServer%(pThis%) :"_BS_Callback_IsGameServer@4"
BS_Callback_Register(pThis%, iCallback%) :"_BS_Callback_Register@8"
BS_Callback_Unregister(pThis%) :"_BS_Callback_Unregister@4"
BS_Callback_RegisterResult(pThis%, lSteamAPICall%, iCallback%) :"_BS_Callback_RegisterResult@12"
BS_Callback_UnregisterResult(pThis%) :"_BS_Callback_UnregisterResult@4"
+41 -41
View File
@@ -1,42 +1,42 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; You should have received a copy of the GNU Lesser General Public License
; aDouble with this program. If not, see <http:;www.gnu.org/licenses/>. ; aDouble with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Double ------------------------------------------------------------------------ ; Double ------------------------------------------------------------------------
BS_Double_New%() :"_BS_Double_New@0" BS_Double_New%() :"_BS_Double_New@0"
BS_Double_Copy%(pThis%) :"_BS_Double_Copy@4" BS_Double_Copy%(pThis%) :"_BS_Double_Copy@4"
BS_Double_Destroy(pThis%) :"_BS_Double_Destroy@4" BS_Double_Destroy(pThis%) :"_BS_Double_Destroy@4"
BS_Double_ToString$(pThis%) :"_BS_Double_ToString@4" BS_Double_ToString$(pThis%) :"_BS_Double_ToString@4"
BS_Double_FromString%(cString$) :"_BS_Double_FromString@4" BS_Double_FromString%(cString$) :"_BS_Double_FromString@4"
BS_Double_FromF%(Float#) :"_BS_Double_FromF@4" BS_Double_FromF%(Float#) :"_BS_Double_FromF@4"
BS_Double_ToF#(pThis%) :"_BS_Double_ToF@4" BS_Double_ToF#(pThis%) :"_BS_Double_ToF@4"
BS_Double_FromI%(iRight%) :"_BS_Double_FromI@4" BS_Double_FromI%(iRight%) :"_BS_Double_FromI@4"
BS_Double_ToI%(pThis%) :"_BS_Double_ToI@8" BS_Double_ToI%(pThis%) :"_BS_Double_ToI@8"
BS_Double_FromL(pDouble%) :"_BS_Double_FromL@4" BS_Double_FromL(pDouble%) :"_BS_Double_FromL@4"
BS_Double_ToL(pThis%) :"_BS_Double_ToL@4" BS_Double_ToL(pThis%) :"_BS_Double_ToL@4"
BS_Double_Compare%(pThis%, pOther%) :"_BS_Double_Compare@8" BS_Double_Compare%(pThis%, pOther%) :"_BS_Double_Compare@8"
BS_Double_Set%(pThis%, pOther%) :"_BS_Double_Set@8" BS_Double_Set%(pThis%, pOther%) :"_BS_Double_Set@8"
BS_Double_Add%(pThis%, pOther%) :"_BS_Double_Add@8" BS_Double_Add%(pThis%, pOther%) :"_BS_Double_Add@8"
BS_Double_Sub%(pThis%, pOther%) :"_BS_Double_Sub@8" BS_Double_Sub%(pThis%, pOther%) :"_BS_Double_Sub@8"
BS_Double_Div%(pThis%, pOther%) :"_BS_Double_Div@8" BS_Double_Div%(pThis%, pOther%) :"_BS_Double_Div@8"
BS_Double_Mul%(pThis%, pOther%) :"_BS_Double_Mul@8" BS_Double_Mul%(pThis%, pOther%) :"_BS_Double_Mul@8"
BS_Double_Mod%(pThis%, pOther%) :"_BS_Double_Mod@8" BS_Double_Mod%(pThis%, pOther%) :"_BS_Double_Mod@8"
BS_Double_SetF%(pThis%, fOther%) :"_BS_Double_SetF@8" BS_Double_SetF%(pThis%, fOther%) :"_BS_Double_SetF@8"
BS_Double_AddF%(pThis%, fOther%) :"_BS_Double_AddF@8" BS_Double_AddF%(pThis%, fOther%) :"_BS_Double_AddF@8"
BS_Double_SubF%(pThis%, fOther%) :"_BS_Double_SubF@8" BS_Double_SubF%(pThis%, fOther%) :"_BS_Double_SubF@8"
BS_Double_DivF%(pThis%, fOther%) :"_BS_Double_DivF@8" BS_Double_DivF%(pThis%, fOther%) :"_BS_Double_DivF@8"
BS_Double_MulF%(pThis%, fOther%) :"_BS_Double_MulF@8" BS_Double_MulF%(pThis%, fOther%) :"_BS_Double_MulF@8"
BS_Double_ModF%(pThis%, fOther%) :"_BS_Double_ModF@8" BS_Double_ModF%(pThis%, fOther%) :"_BS_Double_ModF@8"
+33 -33
View File
@@ -1,33 +1,33 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Memory ---------------------------------------------------------------------- ; Memory ----------------------------------------------------------------------
BS_Memory_Alloc%(iSize%) :"_BS_Memory_Alloc@4" BS_Memory_Alloc%(iSize%) :"_BS_Memory_Alloc@4"
BS_Memory_ReAlloc%(pMemory%, iSize%) :"_BS_Memory_ReAlloc@8" BS_Memory_ReAlloc%(pMemory%, iSize%) :"_BS_Memory_ReAlloc@8"
BS_Memory_Free(pMemory%) :"_BS_Memory_Free@4" BS_Memory_Free(pMemory%) :"_BS_Memory_Free@4"
BS_Memory_PokeByte(pMemory%, iOffset%, bValue%) :"_BS_Memory_PokeByte@12" BS_Memory_PokeByte(pMemory%, iOffset%, bValue%) :"_BS_Memory_PokeByte@12"
BS_Memory_PeekByte%(pMemory%, iOffset%) :"_BS_Memory_PeekByte@8" BS_Memory_PeekByte%(pMemory%, iOffset%) :"_BS_Memory_PeekByte@8"
BS_Memory_PokeShort(pMemory%, iOffset%, sValue%) :"_BS_Memory_PokeShort@12" BS_Memory_PokeShort(pMemory%, iOffset%, sValue%) :"_BS_Memory_PokeShort@12"
BS_Memory_PeekShort%(pMemory%, iOffset%) :"_BS_Memory_PeekShort@8" BS_Memory_PeekShort%(pMemory%, iOffset%) :"_BS_Memory_PeekShort@8"
BS_Memory_PokeInt(pMemory%, iOffset%, iValue%) :"_BS_Memory_PokeInt@12" BS_Memory_PokeInt(pMemory%, iOffset%, iValue%) :"_BS_Memory_PokeInt@12"
BS_Memory_PeekInt%(pMemory%, iOffset%) :"_BS_Memory_PeekInt@8" BS_Memory_PeekInt%(pMemory%, iOffset%) :"_BS_Memory_PeekInt@8"
BS_Memory_PokeFloat(pMemory%, iOffset%, fValue#) :"_BS_Memory_PokeFloat@12" BS_Memory_PokeFloat(pMemory%, iOffset%, fValue#) :"_BS_Memory_PokeFloat@12"
BS_Memory_PeekFloat#(pMemory%, iOffset%) :"_BS_Memory_PeekFloat@8" BS_Memory_PeekFloat#(pMemory%, iOffset%) :"_BS_Memory_PeekFloat@8"
BS_Memory_PokeLong(pMemory%, iOffset%, lValue%) :"_BS_Memory_PokeLong@12" BS_Memory_PokeLong(pMemory%, iOffset%, lValue%) :"_BS_Memory_PokeLong@12"
BS_Memory_PeekLong%(pMemory%, iOffset%) :"_BS_Memory_PeekLong@8" BS_Memory_PeekLong%(pMemory%, iOffset%) :"_BS_Memory_PeekLong@8"
BS_Memory_PokeDouble(pMemory%, iOffset%, dValue%) :"_BS_Memory_PokeDouble@12" BS_Memory_PokeDouble(pMemory%, iOffset%, dValue%) :"_BS_Memory_PokeDouble@12"
BS_Memory_PeekDouble%(pMemory%, iOffset%) :"_BS_Memory_PeekDouble@8" BS_Memory_PeekDouble%(pMemory%, iOffset%) :"_BS_Memory_PeekDouble@8"
@@ -1,77 +1,77 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; GameServer ------------------------------------------------------------------ ; GameServer ------------------------------------------------------------------
BS_SteamGameServer_Init%(iIP%, sSteamPort%, sGamePort%, sQueryPort%, EServerMode%, cVersion$):"_BS_SteamGameServer_Init@24" BS_SteamGameServer_Init%(iIP%, sSteamPort%, sGamePort%, sQueryPort%, EServerMode%, cVersion$):"_BS_SteamGameServer_Init@24"
BS_SteamGameServer_Shutdown() :"_BS_SteamGameServer_Shutdown@0" BS_SteamGameServer_Shutdown() :"_BS_SteamGameServer_Shutdown@0"
BS_SteamGameServer_RunCallbacks() :"_BS_SteamGameServer_RunCallbacks@0" BS_SteamGameServer_RunCallbacks() :"_BS_SteamGameServer_RunCallbacks@0"
BS_SteamGameServer_GetHSteamPipe%() :"_BS_SteamGameServer_GetHSteamPipe@0" BS_SteamGameServer_GetHSteamPipe%() :"_BS_SteamGameServer_GetHSteamPipe@0"
BS_SteamGameServer_IsSecure%() :"_BS_SteamGameServer_IsSecure@0" BS_SteamGameServer_IsSecure%() :"_BS_SteamGameServer_IsSecure@0"
BS_SteamGameServer_GetSteamID%() :"_BS_SteamGameServer_GetSteamID@0" BS_SteamGameServer_GetSteamID%() :"_BS_SteamGameServer_GetSteamID@0"
;! Function above returns a CSteamID*, clean it up afterwards! ;! Function above returns a CSteamID*, clean it up afterwards!
BS_SteamGameServer%() :"_BS_SteamGameServer@0" BS_SteamGameServer%() :"_BS_SteamGameServer@0"
BS_ISteamGameServer_InitGameServer%(pThis%, iIP%, sGamePort%, sQueryPort%, iFlags%, iAppId%, cVersion$):"_BS_ISteamGameServer_InitGameServer@24" BS_ISteamGameServer_InitGameServer%(pThis%, iIP%, sGamePort%, sQueryPort%, iFlags%, iAppId%, cVersion$):"_BS_ISteamGameServer_InitGameServer@24"
BS_ISteamGameServer_SetProduct(pThis%, cProduct$) :"_BS_ISteamGameServer_SetProduct@8" BS_ISteamGameServer_SetProduct(pThis%, cProduct$) :"_BS_ISteamGameServer_SetProduct@8"
BS_ISteamGameServer_SetGameDescription(pThis%, cDescription$) :"_BS_ISteamGameServer_SetGameDescription@8" BS_ISteamGameServer_SetGameDescription(pThis%, cDescription$) :"_BS_ISteamGameServer_SetGameDescription@8"
BS_ISteamGameServer_SetModDir(pThis%, cDirectory$) :"_BS_ISteamGameServer_SetModDir@8" BS_ISteamGameServer_SetModDir(pThis%, cDirectory$) :"_BS_ISteamGameServer_SetModDir@8"
BS_ISteamGameServer_SetDedicatedServer(pThis%, bDedicated%) :"_BS_ISteamGameServer_SetDedicatedServer@8" BS_ISteamGameServer_SetDedicatedServer(pThis%, bDedicated%) :"_BS_ISteamGameServer_SetDedicatedServer@8"
BS_ISteamGameServer_LogOn(pThis%, cToken$) :"_BS_ISteamGameServer_LogOn@8" BS_ISteamGameServer_LogOn(pThis%, cToken$) :"_BS_ISteamGameServer_LogOn@8"
BS_ISteamGameServer_LogOnAnonymous(pThis%) :"_BS_ISteamGameServer_LogOnAnonymous@4" BS_ISteamGameServer_LogOnAnonymous(pThis%) :"_BS_ISteamGameServer_LogOnAnonymous@4"
BS_ISteamGameServer_LogOff(pThis%) :"_BS_ISteamGameServer_LogOff@4" BS_ISteamGameServer_LogOff(pThis%) :"_BS_ISteamGameServer_LogOff@4"
BS_ISteamGameServer_IsLoggedOn%(pThis%) :"_BS_ISteamGameServer_IsLoggedOn@4" BS_ISteamGameServer_IsLoggedOn%(pThis%) :"_BS_ISteamGameServer_IsLoggedOn@4"
BS_ISteamGameServer_IsSecure%(pThis%) :"_BS_ISteamGameServer_IsSecure@4" BS_ISteamGameServer_IsSecure%(pThis%) :"_BS_ISteamGameServer_IsSecure@4"
BS_ISteamGameServer_GetSteamID%(pThis%) :"_BS_ISteamGameServer_GetSteamID@4" BS_ISteamGameServer_GetSteamID%(pThis%) :"_BS_ISteamGameServer_GetSteamID@4"
BS_ISteamGameServer_WasRestartRequested%(pThis%) :"_BS_ISteamGameServer_WasRestartRequested@4" BS_ISteamGameServer_WasRestartRequested%(pThis%) :"_BS_ISteamGameServer_WasRestartRequested@4"
BS_ISteamGameServer_SetMaxPlayerCount(pThis%, iMaxPlayers%) :"_BS_ISteamGameServer_SetMaxPlayerCount@8" BS_ISteamGameServer_SetMaxPlayerCount(pThis%, iMaxPlayers%) :"_BS_ISteamGameServer_SetMaxPlayerCount@8"
BS_ISteamGameServer_SetBotPlayerCount(pThis%, iBotPlayers%) :"_BS_ISteamGameServer_SetBotPlayerCount@8" BS_ISteamGameServer_SetBotPlayerCount(pThis%, iBotPlayers%) :"_BS_ISteamGameServer_SetBotPlayerCount@8"
BS_ISteamGameServer_SetServerName(pThis%, cName$) :"_BS_ISteamGameServer_SetServerName@8" BS_ISteamGameServer_SetServerName(pThis%, cName$) :"_BS_ISteamGameServer_SetServerName@8"
BS_ISteamGameServer_SetMapName(pThis%, cName$) :"_BS_ISteamGameServer_SetMapName@8" BS_ISteamGameServer_SetMapName(pThis%, cName$) :"_BS_ISteamGameServer_SetMapName@8"
BS_ISteamGameServer_SetPasswordProtected(pThis%, bPassworded%) :"_BS_ISteamGameServer_SetPasswordProtected@8" BS_ISteamGameServer_SetPasswordProtected(pThis%, bPassworded%) :"_BS_ISteamGameServer_SetPasswordProtected@8"
BS_ISteamGameServer_SetSpectatorPort(pThis%, sPort%) :"_BS_ISteamGameServer_SetSpectatorPort@8" BS_ISteamGameServer_SetSpectatorPort(pThis%, sPort%) :"_BS_ISteamGameServer_SetSpectatorPort@8"
BS_ISteamGameServer_SetSpectatorServerName(pThis%, cName$) :"_BS_ISteamGameServer_SetSpectatorServerName@8" BS_ISteamGameServer_SetSpectatorServerName(pThis%, cName$) :"_BS_ISteamGameServer_SetSpectatorServerName@8"
BS_ISteamGameServer_ClearAllKeyValues(pThis%) :"_BS_ISteamGameServer_ClearAllKeyValues@4" BS_ISteamGameServer_ClearAllKeyValues(pThis%) :"_BS_ISteamGameServer_ClearAllKeyValues@4"
BS_ISteamGameServer_SetKeyValue(pThis%, cKey$, cValue$) :"_BS_ISteamGameServer_SetKeyValue@12" BS_ISteamGameServer_SetKeyValue(pThis%, cKey$, cValue$) :"_BS_ISteamGameServer_SetKeyValue@12"
BS_ISteamGameServer_SetGameTags(pThis%, cTags$) :"_BS_ISteamGameServer_SetGameTags@8" BS_ISteamGameServer_SetGameTags(pThis%, cTags$) :"_BS_ISteamGameServer_SetGameTags@8"
BS_ISteamGameServer_SetGameData(pThis%, cData$) :"_BS_ISteamGameServer_SetGameData@8" BS_ISteamGameServer_SetGameData(pThis%, cData$) :"_BS_ISteamGameServer_SetGameData@8"
BS_ISteamGameServer_SetRegion(pThis%, cRegion$) :"_BS_ISteamGameServer_SetRegion@8" BS_ISteamGameServer_SetRegion(pThis%, cRegion$) :"_BS_ISteamGameServer_SetRegion@8"
BS_ISteamGameServer_SendUserConnectAndAuthenticate%(pThis%, iIP%, pAuthBlob*, iAuthBlobSize%, lSteamId%):"_BS_ISteamGameServer_SendUserConnectAndAuthenticate@20" BS_ISteamGameServer_SendUserConnectAndAuthenticate%(pThis%, iIP%, pAuthBlob*, iAuthBlobSize%, lSteamId%):"_BS_ISteamGameServer_SendUserConnectAndAuthenticate@20"
BS_ISteamGameServer_SendUserConnectAndAuthenticateEx%(pThis%, iIP%, pAuthBlob%, iAuthBlobSize%, lSteamId%):"_BS_ISteamGameServer_SendUserConnectAndAuthenticate@20" BS_ISteamGameServer_SendUserConnectAndAuthenticateEx%(pThis%, iIP%, pAuthBlob%, iAuthBlobSize%, lSteamId%):"_BS_ISteamGameServer_SendUserConnectAndAuthenticate@20"
BS_ISteamGameServer_CreateUnauthenticatedUserConnection%(pThis%) :"_BS_ISteamGameServer_CreateUnauthenticatedUserConnection@4" BS_ISteamGameServer_CreateUnauthenticatedUserConnection%(pThis%) :"_BS_ISteamGameServer_CreateUnauthenticatedUserConnection@4"
;! Function above returns a CSteamID*, clean it up afterwards! ;! Function above returns a CSteamID*, clean it up afterwards!
BS_ISteamGameServer_SendUserDisconnect(pThis%, lSteamId%) :"_BS_ISteamGameServer_SendUserDisconnect@8" BS_ISteamGameServer_SendUserDisconnect(pThis%, lSteamId%) :"_BS_ISteamGameServer_SendUserDisconnect@8"
BS_ISteamGameServer_UpdateUserData%(pThis%, lSteamId%, cName$, iScore%):"_BS_ISteamGameServer_UpdateUserData@16" BS_ISteamGameServer_UpdateUserData%(pThis%, lSteamId%, cName$, iScore%):"_BS_ISteamGameServer_UpdateUserData@16"
BS_ISteamGameServer_GetAuthSessionTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamGameServer_GetAuthSessionTicket@16" BS_ISteamGameServer_GetAuthSessionTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamGameServer_GetAuthSessionTicket@16"
BS_ISteamGameServer_GetAuthSessionTicketEx%(pThis%, pTicket%, iTicketSize%, piTicketSize%):"_BS_ISteamGameServer_GetAuthSessionTicket@16" BS_ISteamGameServer_GetAuthSessionTicketEx%(pThis%, pTicket%, iTicketSize%, piTicketSize%):"_BS_ISteamGameServer_GetAuthSessionTicket@16"
BS_ISteamGameServer_BeginAuthSession%(pThis%, pTicket*, iTicketSize%, lSteamId%):"_BS_ISteamGameServer_BeginAuthSession@16" BS_ISteamGameServer_BeginAuthSession%(pThis%, pTicket*, iTicketSize%, lSteamId%):"_BS_ISteamGameServer_BeginAuthSession@16"
BS_ISteamGameServer_BeginAuthSessionEx%(pThis%, pTicket%, iTicketSize%, lSteamId%):"_BS_ISteamGameServer_BeginAuthSession@16" BS_ISteamGameServer_BeginAuthSessionEx%(pThis%, pTicket%, iTicketSize%, lSteamId%):"_BS_ISteamGameServer_BeginAuthSession@16"
BS_ISteamGameServer_EndAuthSession(pThis%, lSteamId%) :"_BS_ISteamGameServer_EndAuthSession@8" BS_ISteamGameServer_EndAuthSession(pThis%, lSteamId%) :"_BS_ISteamGameServer_EndAuthSession@8"
BS_ISteamGameServer_CancelAuthTicket(pThis%, iAuthTicket%) :"_BS_ISteamGameServer_CancelAuthTicket@8" BS_ISteamGameServer_CancelAuthTicket(pThis%, iAuthTicket%) :"_BS_ISteamGameServer_CancelAuthTicket@8"
BS_ISteamGameServer_UserHasLicenseForApp%(pThis%, lSteamId%, iAppId%) :"_BS_ISteamGameServer_UserHasLicenseForApp@12" BS_ISteamGameServer_UserHasLicenseForApp%(pThis%, lSteamId%, iAppId%) :"_BS_ISteamGameServer_UserHasLicenseForApp@12"
BS_ISteamGameServer_RequestUserGroupStatus%(pThis%, lSteamId%, pSteamIdGroup%) :"_BS_ISteamGameServer_RequestUserGroupStatus@12" BS_ISteamGameServer_RequestUserGroupStatus%(pThis%, lSteamId%, pSteamIdGroup%) :"_BS_ISteamGameServer_RequestUserGroupStatus@12"
BS_ISteamGameServer_GetPublicIP%(pThis%) :"_BS_ISteamGameServer_GetPublicIP@4" BS_ISteamGameServer_GetPublicIP%(pThis%) :"_BS_ISteamGameServer_GetPublicIP@4"
BS_ISteamGameServer_HandleIncomingPacket%(pThis%, pBuffer*, iBufferSize%, iIP%, sPort%):"_BS_ISteamGameServer_HandleIncomingPacket@20" BS_ISteamGameServer_HandleIncomingPacket%(pThis%, pBuffer*, iBufferSize%, iIP%, sPort%):"_BS_ISteamGameServer_HandleIncomingPacket@20"
BS_ISteamGameServer_HandleIncomingPacketEx%(pThis%, pBuffer%, iBufferSize%, iIP%, sPort%):"_BS_ISteamGameServer_HandleIncomingPacket@20" BS_ISteamGameServer_HandleIncomingPacketEx%(pThis%, pBuffer%, iBufferSize%, iIP%, sPort%):"_BS_ISteamGameServer_HandleIncomingPacket@20"
BS_ISteamGameServer_GetNextOutgoingPacket%(pThis%, pBuffer*, iBufferSize%, piIP*, psPort*):"_BS_ISteamGameServer_GetNextOutgoingPacket@20" BS_ISteamGameServer_GetNextOutgoingPacket%(pThis%, pBuffer*, iBufferSize%, piIP*, psPort*):"_BS_ISteamGameServer_GetNextOutgoingPacket@20"
BS_ISteamGameServer_GetNextOutgoingPacketEx%(pThis%, pBuffer%, iBufferSize%, piIP%, psPort%):"_BS_ISteamGameServer_GetNextOutgoingPacket@20" BS_ISteamGameServer_GetNextOutgoingPacketEx%(pThis%, pBuffer%, iBufferSize%, piIP%, psPort%):"_BS_ISteamGameServer_GetNextOutgoingPacket@20"
BS_ISteamGameServer_EnableHeartbeats(pThis%, bActive%) :"_BS_ISteamGameServer_EnableHeartbeats@8" BS_ISteamGameServer_EnableHeartbeats(pThis%, bActive%) :"_BS_ISteamGameServer_EnableHeartbeats@8"
BS_ISteamGameServer_SetHeartbeatInterval(pThis%, iInterval%) :"_BS_ISteamGameServer_SetHeartbeatInterval@8" BS_ISteamGameServer_SetHeartbeatInterval(pThis%, iInterval%) :"_BS_ISteamGameServer_SetHeartbeatInterval@8"
BS_ISteamGameServer_ForceHeartbeat(pThis%) :"_BS_ISteamGameServer_ForceHeartbeat@4" BS_ISteamGameServer_ForceHeartbeat(pThis%) :"_BS_ISteamGameServer_ForceHeartbeat@4"
BS_ISteamGameServer_AssociateWithClan%(pThis%, pSteamIDClan%) :"_BS_ISteamGameServer_AssociateWithClan@8" BS_ISteamGameServer_AssociateWithClan%(pThis%, pSteamIDClan%) :"_BS_ISteamGameServer_AssociateWithClan@8"
;! Function above returns a SteamAPICall_t*, clean it up afterwards! ;! Function above returns a SteamAPICall_t*, clean it up afterwards!
BS_ISteamGameServer_ComputeNewPlayerCompatibility%(pThis%, pSteamIDNewPlayer%) :"_BS_ISteamGameServer_ComputeNewPlayerCompatibility@8" BS_ISteamGameServer_ComputeNewPlayerCompatibility%(pThis%, pSteamIDNewPlayer%) :"_BS_ISteamGameServer_ComputeNewPlayerCompatibility@8"
;! Function above returns a SteamAPICall_t*, clean it up afterwards! ;! Function above returns a SteamAPICall_t*, clean it up afterwards!
@@ -1,36 +1,36 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; GameServerStats ------------------------------------------------------------- ; GameServerStats -------------------------------------------------------------
BS_SteamGameServerStats%() :"_BS_SteamGameServerStats@0" BS_SteamGameServerStats%() :"_BS_SteamGameServerStats@0"
BS_ISteamGameServerStats_RequestUserStats%(pThis%, lSteamId%) :"_BS_ISteamGameServerStats_RequestUserStats@8" BS_ISteamGameServerStats_RequestUserStats%(pThis%, lSteamId%) :"_BS_ISteamGameServerStats_RequestUserStats@8"
;! Function above returns a SteamAPICall_t*, clean it up afterwards! ;! Function above returns a SteamAPICall_t*, clean it up afterwards!
BS_ISteamGameServerStats_StoreUserStats%(pThis%, lSteamId%) :"_BS_ISteamGameServerStats_StoreUserStats@8" BS_ISteamGameServerStats_StoreUserStats%(pThis%, lSteamId%) :"_BS_ISteamGameServerStats_StoreUserStats@8"
;! Function above returns a SteamAPICall_t*, clean it up afterwards! ;! Function above returns a SteamAPICall_t*, clean it up afterwards!
BS_ISteamGameServerStats_GetUserStat%(pThis%, lSteamId%, cName$, pData*) :"_BS_ISteamGameServerStats_GetUserStat@16" BS_ISteamGameServerStats_GetUserStat%(pThis%, lSteamId%, cName$, pData*) :"_BS_ISteamGameServerStats_GetUserStat@16"
BS_ISteamGameServerStats_GetUserStatEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_ISteamGameServerStats_GetUserStat@16" BS_ISteamGameServerStats_GetUserStatEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_ISteamGameServerStats_GetUserStat@16"
BS_ISteamGameServerStats_GetUserStatF%(pThis%, lSteamId%, cName$, pData*) :"_BS_ISteamGameServerStats_GetUserStatF@16" BS_ISteamGameServerStats_GetUserStatF%(pThis%, lSteamId%, cName$, pData*) :"_BS_ISteamGameServerStats_GetUserStatF@16"
BS_ISteamGameServerStats_GetUserStatFEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_ISteamGameServerStats_GetUserStatF@16" BS_ISteamGameServerStats_GetUserStatFEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_ISteamGameServerStats_GetUserStatF@16"
BS_ISteamGameServerStats_GetUserAchievement%(pThis%, lSteamId%, cName$, pbAchieved*):"_BS_ISteamGameServerStats_GetUserAchievement@16" BS_ISteamGameServerStats_GetUserAchievement%(pThis%, lSteamId%, cName$, pbAchieved*):"_BS_ISteamGameServerStats_GetUserAchievement@16"
BS_ISteamGameServerStats_GetUserAchievementEx%(pThis%, lSteamId%, cName$, pbAchieved%):"_BS_ISteamGameServerStats_GetUserAchievement@16" BS_ISteamGameServerStats_GetUserAchievementEx%(pThis%, lSteamId%, cName$, pbAchieved%):"_BS_ISteamGameServerStats_GetUserAchievement@16"
BS_ISteamGameServerStats_SetUserStat%(pThis%, lSteamId%, cName%, iData%) :"_BS_ISteamGameServerStats_SetUserStat@16" BS_ISteamGameServerStats_SetUserStat%(pThis%, lSteamId%, cName%, iData%) :"_BS_ISteamGameServerStats_SetUserStat@16"
BS_ISteamGameServerStats_SetUserStatF%(pThis%, lSteamId%, cName%, fData#) :"_BS_ISteamGameServerStats_SetUserStatF@16" BS_ISteamGameServerStats_SetUserStatF%(pThis%, lSteamId%, cName%, fData#) :"_BS_ISteamGameServerStats_SetUserStatF@16"
BS_ISteamGameServerStats_UpdateUserAvgRateStat%(pThis%, lSteamId%, cName$, fCountThisSession#, dSessionLength%):"_BS_ISteamGameServerStats_UpdateUserAvgRateStat@20" BS_ISteamGameServerStats_UpdateUserAvgRateStat%(pThis%, lSteamId%, cName$, fCountThisSession#, dSessionLength%):"_BS_ISteamGameServerStats_UpdateUserAvgRateStat@20"
;! Function above takes a Double* as last parameter. ;! Function above takes a Double* as last parameter.
BS_ISteamGameServerStats_SetUserAchievement%(pThis%, lSteamId%, cName$) :"_BS_ISteamGameServerStats_SetUserAchievement@12" BS_ISteamGameServerStats_SetUserAchievement%(pThis%, lSteamId%, cName$) :"_BS_ISteamGameServerStats_SetUserAchievement@12"
BS_ISteamGameServerStats_ClearUserAchievement%(pThis%, lSteamId%, cName$) :"_BS_ISteamGameServerStats_ClearUserAchievement@12" BS_ISteamGameServerStats_ClearUserAchievement%(pThis%, lSteamId%, cName$) :"_BS_ISteamGameServerStats_ClearUserAchievement@12"
@@ -1,56 +1,56 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; HTMLSurface ----------------------------------------------------------------- ; HTMLSurface -----------------------------------------------------------------
BS_SteamHTMLSurface%() :"_BS_SteamHTMLSurface@0" BS_SteamHTMLSurface%() :"_BS_SteamHTMLSurface@0"
BS_ISteamHTMLSurface_Init%(pThis%) :"_BS_ISteamHTMLSurface_Init@4" BS_ISteamHTMLSurface_Init%(pThis%) :"_BS_ISteamHTMLSurface_Init@4"
BS_ISteamHTMLSurface_Shutdown%(pThis%) :"_BS_ISteamHTMLSurface_Shutdown@4" BS_ISteamHTMLSurface_Shutdown%(pThis%) :"_BS_ISteamHTMLSurface_Shutdown@4"
BS_ISteamHTMLSurface_CreateBrowser%(pThis%, cUserAgent$, cUserCSS$) :"_BS_ISteamHTMLSurface_CreateBrowser@12" BS_ISteamHTMLSurface_CreateBrowser%(pThis%, cUserAgent$, cUserCSS$) :"_BS_ISteamHTMLSurface_CreateBrowser@12"
;! Function above returns a SteamAPICall_t*, clean it up afterwards! ;! Function above returns a SteamAPICall_t*, clean it up afterwards!
BS_ISteamHTMLSurface_RemoveBrowser(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_RemoveBrowser@8" BS_ISteamHTMLSurface_RemoveBrowser(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_RemoveBrowser@8"
BS_ISteamHTMLSurface_LoadURL(pThis%, iHandle%, cURL$, cPostData$) :"_BS_ISteamHTMLSurface_LoadURL@16" BS_ISteamHTMLSurface_LoadURL(pThis%, iHandle%, cURL$, cPostData$) :"_BS_ISteamHTMLSurface_LoadURL@16"
BS_ISteamHTMLSurface_SetSize(pThis%, iHandle%, iWidth%, iHeight%) :"_BS_ISteamHTMLSurface_SetSize@16" BS_ISteamHTMLSurface_SetSize(pThis%, iHandle%, iWidth%, iHeight%) :"_BS_ISteamHTMLSurface_SetSize@16"
BS_ISteamHTMLSurface_StopLoad(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_StopLoad@8" BS_ISteamHTMLSurface_StopLoad(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_StopLoad@8"
BS_ISteamHTMLSurface_Reload(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_Reload@8" BS_ISteamHTMLSurface_Reload(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_Reload@8"
BS_ISteamHTMLSurface_GoBack(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_GoBack@8" BS_ISteamHTMLSurface_GoBack(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_GoBack@8"
BS_ISteamHTMLSurface_GoForward(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_GoForward@8" BS_ISteamHTMLSurface_GoForward(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_GoForward@8"
BS_ISteamHTMLSurface_AddHeader(pThis%, iHandle%, cKey$, cValue$) :"_BS_ISteamHTMLSurface_AddHeader@16" BS_ISteamHTMLSurface_AddHeader(pThis%, iHandle%, cKey$, cValue$) :"_BS_ISteamHTMLSurface_AddHeader@16"
BS_ISteamHTMLSurface_ExecuteJavascript(pThis%, iHandle%, cScript$) :"_BS_ISteamHTMLSurface_ExecuteJavascript@12" BS_ISteamHTMLSurface_ExecuteJavascript(pThis%, iHandle%, cScript$) :"_BS_ISteamHTMLSurface_ExecuteJavascript@12"
BS_ISteamHTMLSurface_MouseUp(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseUp@12" BS_ISteamHTMLSurface_MouseUp(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseUp@12"
BS_ISteamHTMLSurface_MouseDown(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseDown@12" BS_ISteamHTMLSurface_MouseDown(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseDown@12"
BS_ISteamHTMLSurface_MouseDoubleClick(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseDoubleClick@12" BS_ISteamHTMLSurface_MouseDoubleClick(pThis%, iHandle%, EMouseButton%) :"_BS_ISteamHTMLSurface_MouseDoubleClick@12"
BS_ISteamHTMLSurface_MouseMove(pThis%, iHandle%, X%, Y%) :"_BS_ISteamHTMLSurface_MouseMove@16" BS_ISteamHTMLSurface_MouseMove(pThis%, iHandle%, X%, Y%) :"_BS_ISteamHTMLSurface_MouseMove@16"
BS_ISteamHTMLSurface_MouseWheel(pThis%, iHandle%, iDelta%) :"_BS_ISteamHTMLSurface_MouseWheel@12" BS_ISteamHTMLSurface_MouseWheel(pThis%, iHandle%, iDelta%) :"_BS_ISteamHTMLSurface_MouseWheel@12"
BS_ISteamHTMLSurface_KeyDown(pThis%, iHandle%, iKeyCode%, EHTMLKeyModifiers%) :"_BS_ISteamHTMLSurface_KeyDown@16" BS_ISteamHTMLSurface_KeyDown(pThis%, iHandle%, iKeyCode%, EHTMLKeyModifiers%) :"_BS_ISteamHTMLSurface_KeyDown@16"
BS_ISteamHTMLSurface_KeyUp(pThis%, iHandle%, iKeyCode%, EHTMLKeyModifiers%) :"_BS_ISteamHTMLSurface_KeyUp@16" BS_ISteamHTMLSurface_KeyUp(pThis%, iHandle%, iKeyCode%, EHTMLKeyModifiers%) :"_BS_ISteamHTMLSurface_KeyUp@16"
BS_ISteamHTMLSurface_KeyChar(pThis%, iHandle%, iUnicodeChar%, EHTMLKeyModifiers%):"_BS_ISteamHTMLSurface_KeyChar@16" BS_ISteamHTMLSurface_KeyChar(pThis%, iHandle%, iUnicodeChar%, EHTMLKeyModifiers%):"_BS_ISteamHTMLSurface_KeyChar@16"
BS_ISteamHTMLSurface_SetHorizontalScroll(pThis%, iHandle%, iAbsolutePixelScroll%):"_BS_ISteamHTMLSurface_SetHorizontalScroll@16" BS_ISteamHTMLSurface_SetHorizontalScroll(pThis%, iHandle%, iAbsolutePixelScroll%):"_BS_ISteamHTMLSurface_SetHorizontalScroll@16"
BS_ISteamHTMLSurface_SetVerticalScroll(pThis%, iHandle%, iAbsolutePixelScroll%) :"_BS_ISteamHTMLSurface_SetVerticalScroll@16" BS_ISteamHTMLSurface_SetVerticalScroll(pThis%, iHandle%, iAbsolutePixelScroll%) :"_BS_ISteamHTMLSurface_SetVerticalScroll@16"
BS_ISteamHTMLSurface_SetKeyFocus(pThis%, iHandle%, bHasKeyFocus%) :"_BS_ISteamHTMLSurface_SetKeyFocus@12" BS_ISteamHTMLSurface_SetKeyFocus(pThis%, iHandle%, bHasKeyFocus%) :"_BS_ISteamHTMLSurface_SetKeyFocus@12"
BS_ISteamHTMLSurface_ViewSource(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_ViewSource@8" BS_ISteamHTMLSurface_ViewSource(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_ViewSource@8"
BS_ISteamHTMLSurface_CopyToClipboard(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_CopyToClipboard@8" BS_ISteamHTMLSurface_CopyToClipboard(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_CopyToClipboard@8"
BS_ISteamHTMLSurface_PasteFromClipboard(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_PasteFromClipboard@8" BS_ISteamHTMLSurface_PasteFromClipboard(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_PasteFromClipboard@8"
BS_ISteamHTMLSurface_Find(pThis%, iHandle%, cSearch$, bCurrentlyInFind%, bReverse%):"_BS_ISteamHTMLSurface_Find@20" BS_ISteamHTMLSurface_Find(pThis%, iHandle%, cSearch$, bCurrentlyInFind%, bReverse%):"_BS_ISteamHTMLSurface_Find@20"
BS_ISteamHTMLSurface_StopFind(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_StopFind@8" BS_ISteamHTMLSurface_StopFind(pThis%, iHandle%) :"_BS_ISteamHTMLSurface_StopFind@8"
BS_ISteamHTMLSurface_GetLinkAtPosition(pThis%, iHandle%, X%, Y%) :"_BS_ISteamHTMLSurface_GetLinkAtPosition@16" BS_ISteamHTMLSurface_GetLinkAtPosition(pThis%, iHandle%, X%, Y%) :"_BS_ISteamHTMLSurface_GetLinkAtPosition@16"
BS_ISteamHTMLSurface_SetCookie(pThis%, iHandle%, cHostName$, cKey$, cValue$, cPath$, nExpires%, bSecure%, bHTTPOnly%):"_BS_ISteamHTMLSurface_SetCookie@36" BS_ISteamHTMLSurface_SetCookie(pThis%, iHandle%, cHostName$, cKey$, cValue$, cPath$, nExpires%, bSecure%, bHTTPOnly%):"_BS_ISteamHTMLSurface_SetCookie@36"
BS_ISteamHTMLSurface_SetPageScaleFactor(pThis%, iHandle%, fZoom#, iX%, iY%) :"_BS_ISteamHTMLSurface_SetPageScaleFactor@20" BS_ISteamHTMLSurface_SetPageScaleFactor(pThis%, iHandle%, fZoom#, iX%, iY%) :"_BS_ISteamHTMLSurface_SetPageScaleFactor@20"
BS_ISteamHTMLSurface_SetBackgroundMode(pThis%, iHandle%, bBackgroundMode%) :"_BS_ISteamHTMLSurface_SetBackgroundMode@12" BS_ISteamHTMLSurface_SetBackgroundMode(pThis%, iHandle%, bBackgroundMode%) :"_BS_ISteamHTMLSurface_SetBackgroundMode@12"
BS_ISteamHTMLSurface_AllowStartRequest(pThis%, iHandle%, bAllowed%) :"_BS_ISteamHTMLSurface_AllowStartRequest@12" BS_ISteamHTMLSurface_AllowStartRequest(pThis%, iHandle%, bAllowed%) :"_BS_ISteamHTMLSurface_AllowStartRequest@12"
BS_ISteamHTMLSurface_JSDialogResponse(pThis%, iHandle%, bResult%) :"_BS_ISteamHTMLSurface_JSDialogResponse@12" BS_ISteamHTMLSurface_JSDialogResponse(pThis%, iHandle%, bResult%) :"_BS_ISteamHTMLSurface_JSDialogResponse@12"
BS_ISteamHTMLSurface_FileLoadDialogResponse(pThis%, iHandle%, pcSelectedFiles%) :"_BS_ISteamHTMLSurface_FileLoadDialogResponse@12" BS_ISteamHTMLSurface_FileLoadDialogResponse(pThis%, iHandle%, pcSelectedFiles%) :"_BS_ISteamHTMLSurface_FileLoadDialogResponse@12"
+53 -53
View File
@@ -1,54 +1,54 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; HTTP ------------------------------------------------------------------------ ; HTTP ------------------------------------------------------------------------
BS_SteamHTTP%() :"_BS_SteamHTTP@0" BS_SteamHTTP%() :"_BS_SteamHTTP@0"
BS_SteamGameServerHTTP%() :"_BS_SteamGameServerHTTP@0" BS_SteamGameServerHTTP%() :"_BS_SteamGameServerHTTP@0"
BS_ISteamHTTP_CreateHTTPRequest%(pThis%, EHTTPRequestMethod%, cAbsoluteUrl$) :"_BS_ISteamHTTP_CreateHTTPRequest@12" BS_ISteamHTTP_CreateHTTPRequest%(pThis%, EHTTPRequestMethod%, cAbsoluteUrl$) :"_BS_ISteamHTTP_CreateHTTPRequest@12"
BS_ISteamHTTP_SetHTTPRequestContextValue%(pThis%, iRequest%, lContextValue%) :"_BS_ISteamHTTP_SetHTTPRequestContextValue@12" BS_ISteamHTTP_SetHTTPRequestContextValue%(pThis%, iRequest%, lContextValue%) :"_BS_ISteamHTTP_SetHTTPRequestContextValue@12"
BS_ISteamHTTP_SetHTTPNetworkActivityTimeout%(pThis%, iRequest%, iSeconds%) :"_BS_ISteamHTTP_SetHTTPNetworkActivityTimeout@12" BS_ISteamHTTP_SetHTTPNetworkActivityTimeout%(pThis%, iRequest%, iSeconds%) :"_BS_ISteamHTTP_SetHTTPNetworkActivityTimeout@12"
BS_ISteamHTTP_SetHTTPRequestHeaderValue%(pThis%, iRequest%, cName$, cValue$) :"_BS_ISteamHTTP_SetHTTPRequestHeaderValue@16" BS_ISteamHTTP_SetHTTPRequestHeaderValue%(pThis%, iRequest%, cName$, cValue$) :"_BS_ISteamHTTP_SetHTTPRequestHeaderValue@16"
BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter%(pThis%, iRequest%, cName$, cValue$):"_BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter@16" BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter%(pThis%, iRequest%, cName$, cValue$):"_BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter@16"
BS_ISteamHTTP_SendHTTPRequest%(pThis%, iRequest, lCallHandle%) :"_BS_ISteamHTTP_SendHTTPRequest@12" BS_ISteamHTTP_SendHTTPRequest%(pThis%, iRequest, lCallHandle%) :"_BS_ISteamHTTP_SendHTTPRequest@12"
BS_ISteamHTTP_SendHTTPRequestAndStreamResponse%(pThis%, iRequest%, lCallHandle%):"_BS_ISteamHTTP_SendHTTPRequestAndStreamResponse@12" BS_ISteamHTTP_SendHTTPRequestAndStreamResponse%(pThis%, iRequest%, lCallHandle%):"_BS_ISteamHTTP_SendHTTPRequestAndStreamResponse@12"
BS_ISteamHTTP_DeferHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_DeferHTTPRequest@8" BS_ISteamHTTP_DeferHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_DeferHTTPRequest@8"
BS_ISteamHTTP_PrioritizeHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_PrioritizeHTTPRequest@8" BS_ISteamHTTP_PrioritizeHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_PrioritizeHTTPRequest@8"
BS_ISteamHTTP_GetHTTPResponseHeaderSize%(pThis%, iRequest%, cName$, piSize*) :"_BS_ISteamHTTP_GetHTTPResponseHeaderSize@16" BS_ISteamHTTP_GetHTTPResponseHeaderSize%(pThis%, iRequest%, cName$, piSize*) :"_BS_ISteamHTTP_GetHTTPResponseHeaderSize@16"
BS_ISteamHTTP_GetHTTPResponseHeaderSizeEx%(pThis%, iRequest%, cName$, piSize%) :"_BS_ISteamHTTP_GetHTTPResponseHeaderSize@16" BS_ISteamHTTP_GetHTTPResponseHeaderSizeEx%(pThis%, iRequest%, cName$, piSize%) :"_BS_ISteamHTTP_GetHTTPResponseHeaderSize@16"
BS_ISteamHTTP_GetHTTPResponseHeaderValue%(pThis%, iRequest%, cName$, pBuffer*, iSize%):"_BS_ISteamHTTP_GetHTTPResponseHeaderValue@20" BS_ISteamHTTP_GetHTTPResponseHeaderValue%(pThis%, iRequest%, cName$, pBuffer*, iSize%):"_BS_ISteamHTTP_GetHTTPResponseHeaderValue@20"
BS_ISteamHTTP_GetHTTPResponseHeaderValueEx%(pThis%, iRequest%, cName$, pBuffer%, iSize%):"_BS_ISteamHTTP_GetHTTPResponseHeaderValue@20" BS_ISteamHTTP_GetHTTPResponseHeaderValueEx%(pThis%, iRequest%, cName$, pBuffer%, iSize%):"_BS_ISteamHTTP_GetHTTPResponseHeaderValue@20"
BS_ISteamHTTP_GetHTTPResponseBodySize%(pThis%, iRequest%, piSize*) :"_BS_ISteamHTTP_GetHTTPResponseBodySize@12" BS_ISteamHTTP_GetHTTPResponseBodySize%(pThis%, iRequest%, piSize*) :"_BS_ISteamHTTP_GetHTTPResponseBodySize@12"
BS_ISteamHTTP_GetHTTPResponseBodySizeEx%(pThis%, iRequest%, piSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodySize@12" BS_ISteamHTTP_GetHTTPResponseBodySizeEx%(pThis%, iRequest%, piSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodySize@12"
BS_ISteamHTTP_GetHTTPResponseBodyData%(pThis%, iRequest%, pBuffer*, nSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodyData@16" BS_ISteamHTTP_GetHTTPResponseBodyData%(pThis%, iRequest%, pBuffer*, nSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodyData@16"
BS_ISteamHTTP_GetHTTPResponseBodyDataEx%(pThis%, iRequest%, pBuffer%, nSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodyData@16" BS_ISteamHTTP_GetHTTPResponseBodyDataEx%(pThis%, iRequest%, pBuffer%, nSize%) :"_BS_ISteamHTTP_GetHTTPResponseBodyData@16"
BS_ISteamHTTP_GetHTTPStreamingResponseBodyData%(pThis%, iRequest%, iOffset%, pBuffer*, nSize%):"_BS_ISteamHTTP_GetHTTPStreamingResponseBodyData@20" BS_ISteamHTTP_GetHTTPStreamingResponseBodyData%(pThis%, iRequest%, iOffset%, pBuffer*, nSize%):"_BS_ISteamHTTP_GetHTTPStreamingResponseBodyData@20"
BS_ISteamHTTP_GetHTTPStreamingResponseBodyDataEx%(pThis%, iRequest%, iOffset%, pBuffer%, nSize%):"_BS_ISteamHTTP_GetHTTPStreamingResponseBodyData@20" BS_ISteamHTTP_GetHTTPStreamingResponseBodyDataEx%(pThis%, iRequest%, iOffset%, pBuffer%, nSize%):"_BS_ISteamHTTP_GetHTTPStreamingResponseBodyData@20"
BS_ISteamHTTP_ReleaseHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_ReleaseHTTPRequest@8" BS_ISteamHTTP_ReleaseHTTPRequest%(pThis%, iRequest%) :"_BS_ISteamHTTP_ReleaseHTTPRequest@8"
BS_ISteamHTTP_GetHTTPDownloadProgressPct%(pThis%, iRequest%, pfPercent*) :"_BS_ISteamHTTP_GetHTTPDownloadProgressPct@12" BS_ISteamHTTP_GetHTTPDownloadProgressPct%(pThis%, iRequest%, pfPercent*) :"_BS_ISteamHTTP_GetHTTPDownloadProgressPct@12"
BS_ISteamHTTP_GetHTTPDownloadProgressPctEx%(pThis%, iRequest%, pfPercent%) :"_BS_ISteamHTTP_GetHTTPDownloadProgressPct@12" BS_ISteamHTTP_GetHTTPDownloadProgressPctEx%(pThis%, iRequest%, pfPercent%) :"_BS_ISteamHTTP_GetHTTPDownloadProgressPct@12"
BS_ISteamHTTP_SetHTTPRequestRawPostBody%(pThis%, iRequest%, cType$, pBody*, nSize%):"_BS_ISteamHTTP_SetHTTPRequestRawPostBody@16" BS_ISteamHTTP_SetHTTPRequestRawPostBody%(pThis%, iRequest%, cType$, pBody*, nSize%):"_BS_ISteamHTTP_SetHTTPRequestRawPostBody@16"
BS_ISteamHTTP_SetHTTPRequestRawPostBodyEx%(pThis%, iRequest%, cType$, pBody*, nSize%):"_BS_ISteamHTTP_SetHTTPRequestRawPostBody@16" BS_ISteamHTTP_SetHTTPRequestRawPostBodyEx%(pThis%, iRequest%, cType$, pBody*, nSize%):"_BS_ISteamHTTP_SetHTTPRequestRawPostBody@16"
BS_ISteamHTTP_CreateCookieContainer%(pThis%, bAllowResponsesToModify%) :"_BS_ISteamHTTP_CreateCookieContainer@8" BS_ISteamHTTP_CreateCookieContainer%(pThis%, bAllowResponsesToModify%) :"_BS_ISteamHTTP_CreateCookieContainer@8"
BS_ISteamHTTP_ReleaseCookieContainer%(pThis%, iCookieContainer%) :"_BS_ISteamHTTP_ReleaseCookieContainer@8" BS_ISteamHTTP_ReleaseCookieContainer%(pThis%, iCookieContainer%) :"_BS_ISteamHTTP_ReleaseCookieContainer@8"
BS_ISteamHTTP_SetCookie%(pthis%, iCookieContainer%, cHost$, cUrl$, cCookie$) :"_BS_ISteamHTTP_SetCookie@20" BS_ISteamHTTP_SetCookie%(pthis%, iCookieContainer%, cHost$, cUrl$, cCookie$) :"_BS_ISteamHTTP_SetCookie@20"
BS_ISteamHTTP_SetHTTPRequestCookieContainer%(pThis%, iRequest%, iCookieContainer%):"_BS_ISteamHTTP_SetHTTPRequestCookieContainer@12" BS_ISteamHTTP_SetHTTPRequestCookieContainer%(pThis%, iRequest%, iCookieContainer%):"_BS_ISteamHTTP_SetHTTPRequestCookieContainer@12"
BS_ISteamHTTP_SetHTTPRequestUserAgentInfo%(pThis%, iRequest%, cUserAgent$) :"_BS_ISteamHTTP_SetHTTPRequestUserAgentInfo@12" BS_ISteamHTTP_SetHTTPRequestUserAgentInfo%(pThis%, iRequest%, cUserAgent$) :"_BS_ISteamHTTP_SetHTTPRequestUserAgentInfo@12"
BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate%(pThis%, iRequest%, bRequire%):"_BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate@12" BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate%(pThis%, iRequest%, bRequire%):"_BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate@12"
BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS%(pThis%, iRequest%, iMilliseconds%):"_BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS@12" BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS%(pThis%, iRequest%, iMilliseconds%):"_BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS@12"
BS_ISteamHTTP_GetHTTPRequestWasTimedOut%(pThis%, iRequest%, pbWasTimedOut*) :"_BS_ISteamHTTP_GetHTTPRequestWasTimedOut@12" BS_ISteamHTTP_GetHTTPRequestWasTimedOut%(pThis%, iRequest%, pbWasTimedOut*) :"_BS_ISteamHTTP_GetHTTPRequestWasTimedOut@12"
BS_ISteamHTTP_GetHTTPRequestWasTimedOutEx%(pThis%, iRequest%, pbWasTimedOut%) :"_BS_ISteamHTTP_GetHTTPRequestWasTimedOut@12" BS_ISteamHTTP_GetHTTPRequestWasTimedOutEx%(pThis%, iRequest%, pbWasTimedOut%) :"_BS_ISteamHTTP_GetHTTPRequestWasTimedOut@12"
+58 -58
View File
@@ -1,59 +1,59 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Inventory ------------------------------------------------------------------- ; Inventory -------------------------------------------------------------------
BS_SteamInventory%() :"_BS_SteamInventory@0" BS_SteamInventory%() :"_BS_SteamInventory@0"
BS_SteamGameServerInventory%() :"_BS_SteamGameServerInventory@0" BS_SteamGameServerInventory%() :"_BS_SteamGameServerInventory@0"
BS_ISteamInventory_GetResultStatus%(pThis%, iResultHandle%) :"_BS_ISteamInventory_GetResultStatus@8" BS_ISteamInventory_GetResultStatus%(pThis%, iResultHandle%) :"_BS_ISteamInventory_GetResultStatus@8"
BS_ISteamInventory_GetResultItems%(pThis%, iResultHandle%, pItemsArray*, piItemsArraySize*):"_BS_ISteamInventory_GetResultItems@16" BS_ISteamInventory_GetResultItems%(pThis%, iResultHandle%, pItemsArray*, piItemsArraySize*):"_BS_ISteamInventory_GetResultItems@16"
BS_ISteamInventory_GetResultItemsEx%(pThis%, iResultHandle%, pItemsArray%, piItemsArraySize%):"_BS_ISteamInventory_GetResultItems@16" BS_ISteamInventory_GetResultItemsEx%(pThis%, iResultHandle%, pItemsArray%, piItemsArraySize%):"_BS_ISteamInventory_GetResultItems@16"
BS_ISteamInventory_GetResultTimestamp%(pThis%, iResultHandle%) :"_BS_ISteamInventory_GetResultTimestamp@8" BS_ISteamInventory_GetResultTimestamp%(pThis%, iResultHandle%) :"_BS_ISteamInventory_GetResultTimestamp@8"
BS_ISteamInventory_CheckResultSteamID%(pThis%, iResultHandle%, lSteamIdExpected%):"_BS_ISteamInventory_GetResultTimestamp@12" BS_ISteamInventory_CheckResultSteamID%(pThis%, iResultHandle%, lSteamIdExpected%):"_BS_ISteamInventory_GetResultTimestamp@12"
BS_ISteamInventory_DestroyResult(pThis%, iResultHandle%) :"_BS_ISteamInventory_DestroyResult@8" BS_ISteamInventory_DestroyResult(pThis%, iResultHandle%) :"_BS_ISteamInventory_DestroyResult@8"
BS_ISteamInventory_GetAllItems%(pThis%, piResultHandle*) :"_BS_ISteamInventory_GetAllItems@8" BS_ISteamInventory_GetAllItems%(pThis%, piResultHandle*) :"_BS_ISteamInventory_GetAllItems@8"
BS_ISteamInventory_GetAllItemsEx%(pThis%, piResultHandle%) :"_BS_ISteamInventory_GetAllItems@8" BS_ISteamInventory_GetAllItemsEx%(pThis%, piResultHandle%) :"_BS_ISteamInventory_GetAllItems@8"
BS_ISteamInventory_GetItemsByID%(pThis%, piResultHandle*, plInstanceIds*, iInstanceIdCount%):"_BS_ISteamInventory_GetItemsByID@16" BS_ISteamInventory_GetItemsByID%(pThis%, piResultHandle*, plInstanceIds*, iInstanceIdCount%):"_BS_ISteamInventory_GetItemsByID@16"
BS_ISteamInventory_GetItemsByIDEx%(pThis%, piResultHandle%, plInstanceIds%, iInstanceIdCount%):"_BS_ISteamInventory_GetItemsByID@16" BS_ISteamInventory_GetItemsByIDEx%(pThis%, piResultHandle%, plInstanceIds%, iInstanceIdCount%):"_BS_ISteamInventory_GetItemsByID@16"
BS_ISteamInventory_SerializeResult%(pThis%, iResultHandle%, pOutBuffer*, piOutBufferSize*):"_BS_ISteamInventory_SerializeResult@16" BS_ISteamInventory_SerializeResult%(pThis%, iResultHandle%, pOutBuffer*, piOutBufferSize*):"_BS_ISteamInventory_SerializeResult@16"
BS_ISteamInventory_SerializeResultEx%(pThis%, iResultHandle%, pOutBuffer%, piOutBufferSize%):"_BS_ISteamInventory_SerializeResult@16" BS_ISteamInventory_SerializeResultEx%(pThis%, iResultHandle%, pOutBuffer%, piOutBufferSize%):"_BS_ISteamInventory_SerializeResult@16"
BS_ISteamInventory_DeserializeResult%(pThis%, piResultHandle*, pBuffer*, iBufferSize%, bReservedMustBeFalse):"_BS_ISteamInventory_DeserializeResult@20" BS_ISteamInventory_DeserializeResult%(pThis%, piResultHandle*, pBuffer*, iBufferSize%, bReservedMustBeFalse):"_BS_ISteamInventory_DeserializeResult@20"
BS_ISteamInventory_DeserializeResultEx%(pThis%, piResultHandle%, pBuffer%, iBufferSize%, bReservedMustBeFalse):"_BS_ISteamInventory_DeserializeResult@20" BS_ISteamInventory_DeserializeResultEx%(pThis%, piResultHandle%, pBuffer%, iBufferSize%, bReservedMustBeFalse):"_BS_ISteamInventory_DeserializeResult@20"
BS_ISteamInventory_GenerateItems%(pThis%, piResultHandle*, piIdArray*, piQuantityArray*, iArrayLength%):"_BS_ISteamInventory_GenerateItems@20" BS_ISteamInventory_GenerateItems%(pThis%, piResultHandle*, piIdArray*, piQuantityArray*, iArrayLength%):"_BS_ISteamInventory_GenerateItems@20"
BS_ISteamInventory_GenerateItemsEx%(pThis%, piResultHandle%, piIdArray%, piQuantityArray%, iArrayLength%):"_BS_ISteamInventory_GenerateItems@20" BS_ISteamInventory_GenerateItemsEx%(pThis%, piResultHandle%, piIdArray%, piQuantityArray%, iArrayLength%):"_BS_ISteamInventory_GenerateItems@20"
BS_ISteamInventory_GrantPromoItems%(pThis%, piResultHandle*) :"_BS_ISteamInventory_GrantPromoItems@8" BS_ISteamInventory_GrantPromoItems%(pThis%, piResultHandle*) :"_BS_ISteamInventory_GrantPromoItems@8"
BS_ISteamInventory_GrantPromoItemsEx%(pThis%, piResultHandle%) :"_BS_ISteamInventory_GrantPromoItems@8" BS_ISteamInventory_GrantPromoItemsEx%(pThis%, piResultHandle%) :"_BS_ISteamInventory_GrantPromoItems@8"
BS_ISteamInventory_AddPromoItem%(pThis%, piResultHandle*, iId%) :"_BS_ISteamInventory_AddPromoItem@12" BS_ISteamInventory_AddPromoItem%(pThis%, piResultHandle*, iId%) :"_BS_ISteamInventory_AddPromoItem@12"
BS_ISteamInventory_AddPromoItemEx%(pThis%, piResultHandle%, iId%) :"_BS_ISteamInventory_AddPromoItem@12" BS_ISteamInventory_AddPromoItemEx%(pThis%, piResultHandle%, iId%) :"_BS_ISteamInventory_AddPromoItem@12"
BS_ISteamInventory_AddPromoItems%(pThis%, piResultHandle*, piIdsArray*, iArrayLength%):"_BS_ISteamInventory_AddPromoItems@16" BS_ISteamInventory_AddPromoItems%(pThis%, piResultHandle*, piIdsArray*, iArrayLength%):"_BS_ISteamInventory_AddPromoItems@16"
BS_ISteamInventory_AddPromoItemsEx%(pThis%, piResultHandle%, piIdsArray%, iArrayLength%):"_BS_ISteamInventory_AddPromoItems@16" BS_ISteamInventory_AddPromoItemsEx%(pThis%, piResultHandle%, piIdsArray%, iArrayLength%):"_BS_ISteamInventory_AddPromoItems@16"
BS_ISteamInventory_ConsumeItem%(pThis%, piResultHandle*, iId%, iQuantity%) :"_BS_ISteamInventory_ConsumeItem@16" BS_ISteamInventory_ConsumeItem%(pThis%, piResultHandle*, iId%, iQuantity%) :"_BS_ISteamInventory_ConsumeItem@16"
BS_ISteamInventory_ConsumeItemEx%(pThis%, piResultHandle%, iId%, iQuantity%) :"_BS_ISteamInventory_ConsumeItem@16" BS_ISteamInventory_ConsumeItemEx%(pThis%, piResultHandle%, iId%, iQuantity%) :"_BS_ISteamInventory_ConsumeItem@16"
BS_ISteamInventory_ExchangeItems%(pThis%, piResultHandle*, piGenerateArray*, piGenerateQuantityArray*, iArrayGenerateLength%, piDestroyArray*, piDestroyQuantityArray*, iArrayDestroyLength%):"_BS_ISteamInventory_ExchangeItems@32" BS_ISteamInventory_ExchangeItems%(pThis%, piResultHandle*, piGenerateArray*, piGenerateQuantityArray*, iArrayGenerateLength%, piDestroyArray*, piDestroyQuantityArray*, iArrayDestroyLength%):"_BS_ISteamInventory_ExchangeItems@32"
BS_ISteamInventory_ExchangeItemsEx%(pThis%, piResultHandle%, piGenerateArray%, piGenerateQuantityArray%, iArrayGenerateLength%, piDestroyArray%, piDestroyQuantityArray%, iArrayDestroyLength%):"_BS_ISteamInventory_ExchangeItems@32" BS_ISteamInventory_ExchangeItemsEx%(pThis%, piResultHandle%, piGenerateArray%, piGenerateQuantityArray%, iArrayGenerateLength%, piDestroyArray%, piDestroyQuantityArray%, iArrayDestroyLength%):"_BS_ISteamInventory_ExchangeItems@32"
BS_ISteamInventory_TransferItemQuantity%(pThis%, piResultHandle*, iSourceId%, iQuantity%, iDestId%):"_BS_ISteamInventory_TransferItemQuantity@20" BS_ISteamInventory_TransferItemQuantity%(pThis%, piResultHandle*, iSourceId%, iQuantity%, iDestId%):"_BS_ISteamInventory_TransferItemQuantity@20"
BS_ISteamInventory_TransferItemQuantityEx%(pThis%, piResultHandle%, iSourceId%, iQuantity%, iDestId%):"_BS_ISteamInventory_TransferItemQuantity@20" BS_ISteamInventory_TransferItemQuantityEx%(pThis%, piResultHandle%, iSourceId%, iQuantity%, iDestId%):"_BS_ISteamInventory_TransferItemQuantity@20"
BS_ISteamInventory_SendItemDropHeartbeat%(pThis%) :"_BS_ISteamInventory_SendItemDropHeartbeat@4" BS_ISteamInventory_SendItemDropHeartbeat%(pThis%) :"_BS_ISteamInventory_SendItemDropHeartbeat@4"
BS_ISteamInventory_TriggerItemDrop%(pThis%, piResultHandle*, iDropListId%) :"_BS_ISteamInventory_TriggerItemDrop@12" BS_ISteamInventory_TriggerItemDrop%(pThis%, piResultHandle*, iDropListId%) :"_BS_ISteamInventory_TriggerItemDrop@12"
BS_ISteamInventory_TriggerItemDropEx%(pThis%, piResultHandle%, iDropListId%) :"_BS_ISteamInventory_TriggerItemDrop@12" BS_ISteamInventory_TriggerItemDropEx%(pThis%, piResultHandle%, iDropListId%) :"_BS_ISteamInventory_TriggerItemDrop@12"
BS_ISteamInventory_TradeItems%(pThis%, piResultHandle*, lSteamIdPartner%, piArrayGive*, piArrayGiveQuantity*, iArrayGiveLength%, piArrayGet*, piArrayGetQuantity*, iArrayGetLength%):"_BS_ISteamInventory_TradeItems@36" BS_ISteamInventory_TradeItems%(pThis%, piResultHandle*, lSteamIdPartner%, piArrayGive*, piArrayGiveQuantity*, iArrayGiveLength%, piArrayGet*, piArrayGetQuantity*, iArrayGetLength%):"_BS_ISteamInventory_TradeItems@36"
BS_ISteamInventory_TradeItemsEx%(pThis%, piResultHandle%, lSteamIdPartner%, piArrayGive%, piArrayGiveQuantity%, iArrayGiveLength%, piArrayGet%, piArrayGetQuantity%, iArrayGetLength%):"_BS_ISteamInventory_TradeItems@36" BS_ISteamInventory_TradeItemsEx%(pThis%, piResultHandle%, lSteamIdPartner%, piArrayGive%, piArrayGiveQuantity%, iArrayGiveLength%, piArrayGet%, piArrayGetQuantity%, iArrayGetLength%):"_BS_ISteamInventory_TradeItems@36"
BS_ISteamInventory_LoadItemDefinitions%(pThis%) :"_BS_ISteamInventory_LoadItemDefinitions@4" BS_ISteamInventory_LoadItemDefinitions%(pThis%) :"_BS_ISteamInventory_LoadItemDefinitions@4"
BS_ISteamInventory_GetItemDefinitionIDs%(pThis%, piArrayId*, piArrayIdSize*) :"_BS_ISteamInventory_GetItemDefinitionIDs@12" BS_ISteamInventory_GetItemDefinitionIDs%(pThis%, piArrayId*, piArrayIdSize*) :"_BS_ISteamInventory_GetItemDefinitionIDs@12"
BS_ISteamInventory_GetItemDefinitionIDsEx%(pThis%, piArrayId%, piArrayIdSize%) :"_BS_ISteamInventory_GetItemDefinitionIDs@12" BS_ISteamInventory_GetItemDefinitionIDsEx%(pThis%, piArrayId%, piArrayIdSize%) :"_BS_ISteamInventory_GetItemDefinitionIDs@12"
BS_ISteamInventory_GetItemDefinitionProperty%(pThis%, iId%, cName$, pcValueBuffer*, piValueBufferSize*):"_BS_ISteamInventory_GetItemDefinitionProperty@20" BS_ISteamInventory_GetItemDefinitionProperty%(pThis%, iId%, cName$, pcValueBuffer*, piValueBufferSize*):"_BS_ISteamInventory_GetItemDefinitionProperty@20"
BS_ISteamInventory_GetItemDefinitionPropertyEx%(pThis%, iId%, cName$, pcValueBuffer%, piValueBufferSize%):"_BS_ISteamInventory_GetItemDefinitionProperty@20" BS_ISteamInventory_GetItemDefinitionPropertyEx%(pThis%, iId%, cName$, pcValueBuffer%, piValueBufferSize%):"_BS_ISteamInventory_GetItemDefinitionProperty@20"
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Matchmaking ----------------------------------------------------------------- ; Matchmaking -----------------------------------------------------------------
BS_SteamMatchmaking%() :"_BS_SteamMatchmaking@0" BS_SteamMatchmaking%() :"_BS_SteamMatchmaking@0"
; Todo ; Todo
@@ -1,21 +1,42 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; MatchmakingServers ---------------------------------------------------------- ; MatchmakingServers ----------------------------------------------------------
BS_SteamMatchmakingServers%() :"_BS_SteamMatchmakingServers@0" BS_SteamMatchmakingServers%() :"_BS_SteamMatchmakingServers@0"
; Todo BS_ISteamMatchmakingServers_RequestInternetServerList%(pThis%, iApp%, ppchFilters*, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestInternetServerList@20"
BS_ISteamMatchmakingServers_RequestInternetServerListEx%(pThis%, iApp%, ppchFilters%, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestInternetServerList@20"
BS_ISteamMatchmakingServers_RequestLANServerList%(pThis%, iApp%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestLANServerList@12"
BS_ISteamMatchmakingServers_RequestFriendsServerList%(pThis%, iApp%, ppchFilters*, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestFriendsServerList@20"
BS_ISteamMatchmakingServers_RequestFriendsServerListEx%(pThis%, iApp%, ppchFilters%, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestFriendsServerList@20"
BS_ISteamMatchmakingServers_RequestFavoritesServerList%(pThis%, iApp%, ppchFilters*, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestFavoritesServerList@20"
BS_ISteamMatchmakingServers_RequestFavoritesServerListEx%(pThis%, iApp%, ppchFilters%, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestFavoritesServerList@20"
BS_ISteamMatchmakingServers_RequestHistoryServerList%(pThis%, iApp%, ppchFilters*, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestHistoryServerList@20"
BS_ISteamMatchmakingServers_RequestHistoryServerListEx%(pThis%, iApp%, ppchFilters%, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestHistoryServerList@20"
BS_ISteamMatchmakingServers_RequestSpectatorServerList%(pThis%, iApp%, ppchFilters*, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestSpectatorServerList@20"
BS_ISteamMatchmakingServers_RequestSpectatorServerListEx%(pThis%, iApp%, ppchFilters%, nFilters%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_RequestSpectatorServerList@20"
BS_ISteamMatchmakingServers_ReleaseRequest%(pThis%, hServerListRequest%) :"_BS_ISteamMatchmakingServers_ReleaseRequest@8"
BS_ISteamMatchmakingServers_GetServerDetails%(pThis%, hRequest%, iServer%) :"_BS_ISteamMatchmakingServers_GetServerDetails@12"
BS_ISteamMatchmakingServers_CancelQuery%(pThis%, hRequest%) :"_BS_ISteamMatchmakingServers_CancelQuery@8"
BS_ISteamMatchmakingServers_RefreshQuery%(pThis%, hRequest%) :"_BS_ISteamMatchmakingServers_RefreshQuery@8"
BS_ISteamMatchmakingServers_IsRefreshing%(pThis%, hRequest%) :"_BS_ISteamMatchmakingServers_IsRefreshing@8"
BS_ISteamMatchmakingServers_GetServerCount%(pThis%, hRequest%) :"_BS_ISteamMatchmakingServers_GetServerCount@8"
BS_ISteamMatchmakingServers_RefreshServer%(pThis%, hRequest%) :"_BS_ISteamMatchmakingServers_RefreshServer@8"
BS_ISteamMatchmakingServers_PingServer%(pThis%, unIP%, usPort%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_PingServer@16"
BS_ISteamMatchmakingServers_PlayerDetails%(pThis%, unIP%, usPort%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_PlayerDetails@16"
BS_ISteamMatchmakingServers_ServerRules%(pThis%, unIP%, usPort%, pRequestServersResponse%):"_BS_ISteamMatchmakingServers_ServerRules@16"
BS_ISteamMatchmakingServers_CancelServerQuery%(pThis%, hServerQuery) :"_BS_ISteamMatchmakingServers_CancelServerQuery@8"
@@ -0,0 +1,78 @@
; 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 <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll"
; ISteamMatchmakingServerListResponse -----------------------------------------
BS_ISteamMatchmakingServerListResponse_New%(Data%, pServerResponded%, pServerFailedToRespond%, pRefreshComplete%):"_BS_ISteamMatchmakingServerListResponse_New@16"
BS_ISteamMatchmakingServerListResponse_Destroy%(pThis%):"_BS_ISteamMatchmakingServerListResponse_Destroy@4"
;- Callback pServerResponded: Function(Data%, hRequest%, iServer%)
;- Callback pServerFailedToRespond: Function(Data%, hRequest%, iServer%)
;- Callback pRefreshComplete: Function(Data%)
; ISteamMatchmakingPingResponse -----------------------------------------------
BS_ISteamMatchmakingPingResponse_New%(Data%, pServerResponded%, pServerFailedToRespond%):"_BS_ISteamMatchmakingPingResponse_New@12"
BS_ISteamMatchmakingPingResponse_Destroy%(pThis%):"_BS_ISteamMatchmakingPingResponse_Destroy@4"
;- Callback pServerResponded: Function(Data%, TGameServerItem%)
;- Callback pServerFailedToRespond: Function(Data%)
; ISteamMatchmakingPlayersResponse --------------------------------------------
BS_ISteamMatchmakingPlayersResponse_New%(Data%, pAddPlayerToList%, pPlayersFailedToRespond%, pPlayersRefreshComplete%):"_BS_ISteamMatchmakingPlayersResponse_New@16"
BS_ISteamMatchmakingPlayersResponse_Destroy%(pThis%):"_BS_ISteamMatchmakingPlayersResponse_Destroy@4"
;- Callback pAddPlayerToList: Function(Data%, pchName%, nScore%, flTimePlayer#)
;- Callback pPlayersFailedToRespond: Function(Data%)
;- Callback pPlayersRefreshComplete: Function(Data%)
; ISteamMatchmakingRulesResponse ----------------------------------------------
BS_ISteamMatchmakingRulesResponse_New%(Data%, pRulesResponded%, pRulesFailedToRespond%, pRulesRefreshComplete%):"_BS_ISteamMatchmakingRulesResponse_New@16"
BS_ISteamMatchmakingRulesResponse_Destroy%(pThis%):"_BS_ISteamMatchmakingPlayersResponse_Destroy@4"
;- Callback pRulesResponded: Function(Data%, pchRule%, pchValue%)
;- Callback pRulesFailedToRespond: Function(Data%)
;- Callback pRulesRefreshComplete: Function(Data%)
; TGameServerItem -------------------------------------------------------------
BS_TGameServerItem_GetName$(pThis%) :"_BS_TGameServerItem_GetName@4"
BS_TGameServerItem_SetName(pThis%, cName$) :"_BS_TGameServerItem_SetName@8"
BS_TGameServerItem_NetAdr%(pThis%) :"_BS_TGameServerItem_NetAdr@4"
BS_TGameServerItem_Ping%(pThis%) :"_BS_TGameServerItem_Ping@4"
BS_TGameServerItem_HadSuccessfulResponse%(pThis%) :"_BS_TGameServerItem_HadSuccessfulResponse@4"
BS_TGameServerItem_DoNotRefresh%(pThis%) :"_BS_TGameServerItem_DoNotRefresh@4"
BS_TGameServerItem_GameDir$(pThis%) :"_BS_TGameServerItem_GameDir@4"
BS_TGameServerItem_Map$(pThis%) :"_BS_TGameServerItem_Map@4"
BS_TGameServerItem_GameDescription$(pThis%) :"_BS_TGameServerItem_GameDescription@4"
BS_TGameServerItem_AppId%(pThis%) :"_BS_TGameServerItem_AppId@4"
BS_TGameServerItem_Players%(pThis%) :"_BS_TGameServerItem_Players@4"
BS_TGameServerItem_MaxPlayers%(pThis%) :"_BS_TGameServerItem_MaxPlayers@4"
BS_TGameServerItem_BotPlayers%(pThis%) :"_BS_TGameServerItem_BotPlayers@4"
BS_TGameServerItem_Password%(pThis%) :"_BS_TGameServerItem_Password@4"
BS_TGameServerItem_Secure%(pThis%) :"_BS_TGameServerItem_Secure@4"
BS_TGameServerItem_TimeLastPlayed%(pThis%) :"_BS_TGameServerItem_TimeLastPlayed@4"
BS_TGameServerItem_ServerVersion%(pThis%) :"_BS_TGameServerItem_ServerVersion@4"
BS_TGameServerItem_GameTags$(pThis%) :"_BS_TGameServerItem_GameTags@4"
BS_TGameServerItem_SteamID%(pThis%) :"_BS_TGameServerItem_SteamID@4"
; TServerNetAdr ---------------------------------------------------------------
BS_TServerNetAdr_Set(pThis%, pThat%) :"_BS_TServerNetAdr_Set@8"
BS_TServerNetAdr_Init(pThis%, iIP%, iQueryPort%, iConnectionPort%) :"_BS_TServerNetAdr_Init@16"
BS_TServerNetAdr_GetQueryPort%(pThis%) :"_BS_TServerNetAdr_GetQueryPort@4"
BS_TServerNetAdr_SetQueryPort(pThis%, iPort%) :"_BS_TServerNetAdr_SetQueryPort@8"
BS_TServerNetAdr_GetConnectionPort%(pThis%) :"_BS_TServerNetAdr_GetConnectionPort@4"
BS_TServerNetAdr_SetConnectionPort(pThis%, iPort%) :"_BS_TServerNetAdr_SetConnectionPort@8"
BS_TServerNetAdr_GetIP%(pThis%) :"_BS_TServerNetAdr_GetIP@4"
BS_TServerNetAdr_SetIP(pThis%, iIP%) :"_BS_TServerNetAdr_SetIP@8"
BS_TServerNetAdr_GetConnectionAddressString$(pThis%) :"_BS_TServerNetAdr_GetConnectionAddressString@4"
BS_TServerNetAdr_GetQueryAddressString$(pThis%) :"_BS_TServerNetAdr_GetQueryAddressString@4"
BS_TServerNetAdr_Compare%(pThis%, pThat%) :"_BS_TServerNetAdr_Compare@8"
+21 -21
View File
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Music ----------------------------------------------------------------------- ; Music -----------------------------------------------------------------------
BS_SteamMusic%() :"_BS_SteamMusic@0" BS_SteamMusic%() :"_BS_SteamMusic@0"
; Todo ; Todo
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; MusicRemote ----------------------------------------------------------------- ; MusicRemote -----------------------------------------------------------------
BS_SteamMusicRemote%() :"_BS_SteamMusicRemote@0" BS_SteamMusicRemote%() :"_BS_SteamMusicRemote@0"
; Todo ; Todo
@@ -1,32 +1,32 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Networking ------------------------------------------------------------------ ; Networking ------------------------------------------------------------------
BS_SteamNetworking%() :"_BS_SteamNetworking@0" BS_SteamNetworking%() :"_BS_SteamNetworking@0"
BS_SteamGameServerNetworking%() :"_BS_SteamGameServerNetworking@0" BS_SteamGameServerNetworking%() :"_BS_SteamGameServerNetworking@0"
BS_ISteamNetworking_SendP2PPacket%(pThis%, lRemoteSteamId%, pData*, iDataSize%, EP2PSendType%, iChannel%):"_BS_ISteamNetworking_SendP2PPacket@24" BS_ISteamNetworking_SendP2PPacket%(pThis%, lRemoteSteamId%, pData*, iDataSize%, EP2PSendType%, iChannel%):"_BS_ISteamNetworking_SendP2PPacket@24"
BS_ISteamNetworking_SendP2PPacketEx%(pThis%, lRemoteSteamId%, pData%, iDataSize%, EP2PSendType%, iChannel%):"_BS_ISteamNetworking_SendP2PPacket@24" BS_ISteamNetworking_SendP2PPacketEx%(pThis%, lRemoteSteamId%, pData%, iDataSize%, EP2PSendType%, iChannel%):"_BS_ISteamNetworking_SendP2PPacket@24"
BS_ISteamNetworking_IsP2PPacketAvailable%(pThis%, piSize*, iChannel%) :"_BS_ISteamNetworking_IsP2PPacketAvailable@12" BS_ISteamNetworking_IsP2PPacketAvailable%(pThis%, piSize*, iChannel%) :"_BS_ISteamNetworking_IsP2PPacketAvailable@12"
BS_ISteamNetworking_IsP2PPacketAvailableEx%(pThis%, piSize%, iChannel%) :"_BS_ISteamNetworking_IsP2PPacketAvailableEx@12" BS_ISteamNetworking_IsP2PPacketAvailableEx%(pThis%, piSize%, iChannel%) :"_BS_ISteamNetworking_IsP2PPacketAvailable@12"
BS_ISteamNetworking_ReadP2PPacket%(pThis%, pBuffer*, iBufferSize%, piMessageSize*, lRemoteSteamId%, iChannel%):"_BS_ISteamNetworking_ReadP2PPacket@24" BS_ISteamNetworking_ReadP2PPacket%(pThis%, pBuffer*, iBufferSize%, piMessageSize*, plRemoteSteamId*, iChannel%):"_BS_ISteamNetworking_ReadP2PPacket@24"
BS_ISteamNetworking_ReadP2PPacketEx%(pThis%, pBuffer%, iBufferSize%, piMessageSize%, lRemoteSteamId%, iChannel%):"_BS_ISteamNetworking_ReadP2PPacket@24" BS_ISteamNetworking_ReadP2PPacketEx%(pThis%, pBuffer%, iBufferSize%, piMessageSize%, plRemoteSteamId%, iChannel%):"_BS_ISteamNetworking_ReadP2PPacket@24"
BS_ISteamNetworking_AcceptP2PSessionWithUser%(pThis%, lRemoteSteamId%) :"_BS_ISteamNetworking_AcceptP2PSessionWithUser@8" BS_ISteamNetworking_AcceptP2PSessionWithUser%(pThis%, lRemoteSteamId%) :"_BS_ISteamNetworking_AcceptP2PSessionWithUser@8"
BS_ISteamNetworking_CloseP2PSessionWithUser%(pThis%, lRemoteSteamId%) :"_BS_ISteamNetworking_CloseP2PSessionWithUser@8" BS_ISteamNetworking_CloseP2PSessionWithUser%(pThis%, lRemoteSteamId%) :"_BS_ISteamNetworking_CloseP2PSessionWithUser@8"
BS_ISteamNetworking_CloseP2PChannelWithUser%(pThis%, lRemoteSteamId%, iChannel%):"_BS_ISteamNetworking_CloseP2PChannelWithUser@12" BS_ISteamNetworking_CloseP2PChannelWithUser%(pThis%, lRemoteSteamId%, iChannel%):"_BS_ISteamNetworking_CloseP2PChannelWithUser@12"
BS_ISteamNetworking_GetP2PSessionState%(pThis%, lRemoteSteamId%, pConnectionState*):"_BS_ISteamNetworking_GetP2PSessionState@12" BS_ISteamNetworking_GetP2PSessionState%(pThis%, lRemoteSteamId%, pConnectionState*):"_BS_ISteamNetworking_GetP2PSessionState@12"
BS_ISteamNetworking_AllowP2PPacketRelay%(pThis%, bAllow%) :"_BS_ISteamNetworking_AllowP2PPacketRelay@8" BS_ISteamNetworking_AllowP2PPacketRelay%(pThis%, bAllow%) :"_BS_ISteamNetworking_AllowP2PPacketRelay@8"
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; RemoteStorage --------------------------------------------------------------- ; RemoteStorage ---------------------------------------------------------------
BS_SteamRemoteStorage%() :"_BS_SteamRemoteStorage@0" BS_SteamRemoteStorage%() :"_BS_SteamRemoteStorage@0"
; Todo ; Todo
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Screenshots ----------------------------------------------------------------- ; Screenshots -----------------------------------------------------------------
BS_SteamScreenshots%() :"_BS_SteamScreenshots@0" BS_SteamScreenshots%() :"_BS_SteamScreenshots@0"
; Todo ; Todo
+22 -22
View File
@@ -1,22 +1,22 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; UGC ------------------------------------------------------------------------- ; UGC -------------------------------------------------------------------------
BS_SteamUGC%() :"_BS_SteamUGC@0" BS_SteamUGC%() :"_BS_SteamUGC@0"
BS_SteamGameServerUGC%() :"_BS_SteamGameServerUGC@0" BS_SteamGameServerUGC%() :"_BS_SteamGameServerUGC@0"
; Todo ; Todo
@@ -1,20 +1,20 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; UnifiedMessages ------------------------------------------------------------- ; UnifiedMessages -------------------------------------------------------------
BS_SteamUnifiedMessages%() :"_BS_SteamUnifiedMessages@0" BS_SteamUnifiedMessages%() :"_BS_SteamUnifiedMessages@0"
+48 -48
View File
@@ -1,49 +1,49 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; User ------------------------------------------------------------------------ ; User ------------------------------------------------------------------------
BS_SteamUser%() :"_BS_SteamUser@0" BS_SteamUser%() :"_BS_SteamUser@0"
BS_ISteamUser_GetHSteamUser%(pThis%) :"_BS_ISteamUser_GetHSteamUser@4" BS_ISteamUser_GetHSteamUser%(pThis%) :"_BS_ISteamUser_GetHSteamUser@4"
BS_ISteamUser_IsLoggedOn%(pThis%) :"_BS_ISteamUser_IsLoggedOn@4" BS_ISteamUser_IsLoggedOn%(pThis%) :"_BS_ISteamUser_IsLoggedOn@4"
BS_ISteamUser_GetSteamID%(pThis%) :"_BS_ISteamUser_GetSteamID@4" BS_ISteamUser_GetSteamID%(pThis%) :"_BS_ISteamUser_GetSteamID@4"
BS_ISteamUser_InitiateGameConnection%(pThis%, pAuthBlob*, iAuthBlobSize%, lSteamId%, iIp%, sPort%, bSecure%):"_BS_ISteamUser_InitiateGameConnection@28" BS_ISteamUser_InitiateGameConnection%(pThis%, pAuthBlob*, iAuthBlobSize%, lSteamId%, iIp%, sPort%, bSecure%):"_BS_ISteamUser_InitiateGameConnection@28"
BS_ISteamUser_InitiateGameConnectionEx%(pThis%, pAuthBlob%, iAuthBlobSize%, lSteamId%, iIp%, sPort%, bSecure%):"_BS_ISteamUser_InitiateGameConnection@28" BS_ISteamUser_InitiateGameConnectionEx%(pThis%, pAuthBlob%, iAuthBlobSize%, lSteamId%, iIp%, sPort%, bSecure%):"_BS_ISteamUser_InitiateGameConnection@28"
BS_ISteamUser_TerminateGameConnection(pThis%, iIp%, sPort%) :"_BS_ISteamUser_TerminateGameConnection@12" BS_ISteamUser_TerminateGameConnection(pThis%, iIp%, sPort%) :"_BS_ISteamUser_TerminateGameConnection@12"
BS_ISteamUser_TrackAppUsageEvent(pThis%, iAppId%, EAppUsageEvent%, cExtraInfo$) :"_BS_ISteamUser_TrackAppUsageEvent@16" BS_ISteamUser_TrackAppUsageEvent(pThis%, iAppId%, EAppUsageEvent%, cExtraInfo$) :"_BS_ISteamUser_TrackAppUsageEvent@16"
BS_ISteamUser_GetUserDataFolder%(pThis%, pBuffer*, iBufferSize%) :"_BS_ISteamUser_GetUserDataFolder@12" BS_ISteamUser_GetUserDataFolder%(pThis%, pBuffer*, iBufferSize%) :"_BS_ISteamUser_GetUserDataFolder@12"
BS_ISteamUser_StartVoiceRecording(pThis%) :"_BS_ISteamUser_StartVoiceRecording@4" BS_ISteamUser_StartVoiceRecording(pThis%) :"_BS_ISteamUser_StartVoiceRecording@4"
BS_ISteamUser_StopVoiceRecording(pThis%) :"_BS_ISteamUser_StopVoiceRecording@4" BS_ISteamUser_StopVoiceRecording(pThis%) :"_BS_ISteamUser_StopVoiceRecording@4"
BS_ISteamUser_GetAvailableVoice%(pThis%, pCompressed*, pUncompressed*, nDesiredSampleRate%):"_BS_ISteamUser_GetAvailableVoice@16" BS_ISteamUser_GetAvailableVoice%(pThis%, pCompressed*, pUncompressed*, nDesiredSampleRate%):"_BS_ISteamUser_GetAvailableVoice@16"
BS_ISteamUser_GetAvailableVoiceEx%(pThis%, pCompressed%, pUncompressed%, nDesiredSampleRate%):"_BS_ISteamUser_GetAvailableVoice@16" BS_ISteamUser_GetAvailableVoiceEx%(pThis%, pCompressed%, pUncompressed%, nDesiredSampleRate%):"_BS_ISteamUser_GetAvailableVoice@16"
BS_ISteamUser_GetVoice%(pThis%, bCompressed%, pCompressed*, iCompressedSize%, piCompressedBytesWritten*, bUncompressed%, pUncompressed*, iUncompressedSize%, piUncompressedBytesWritten*, iSampleRate%):"_BS_ISteamUser_GetVoice@36" BS_ISteamUser_GetVoice%(pThis%, bCompressed%, pCompressed*, iCompressedSize%, piCompressedBytesWritten*, bUncompressed%, pUncompressed*, iUncompressedSize%, piUncompressedBytesWritten*, iSampleRate%):"_BS_ISteamUser_GetVoice@36"
BS_ISteamUser_GetVoiceEx%(pThisEx%, bCompressed%, pCompressed%, iCompressedSize%, piCompressedBytesWritten%, bUncompressed%, pUncompressed%, iUncompressedSize%, piUncompressedBytesWritten%, iSampleRate%):"_BS_ISteamUser_GetVoice@36" BS_ISteamUser_GetVoiceEx%(pThisEx%, bCompressed%, pCompressed%, iCompressedSize%, piCompressedBytesWritten%, bUncompressed%, pUncompressed%, iUncompressedSize%, piUncompressedBytesWritten%, iSampleRate%):"_BS_ISteamUser_GetVoice@36"
BS_ISteamUser_DecompressVoice(pThis%, pCompressed*, iCompressedSize%, pUncompressed*, iUncompressedSize%, iUncompressedBytesWritten*, iSampleRate%):"_BS_ISteamUser_DecompressVoice@28" BS_ISteamUser_DecompressVoice(pThis%, pCompressed*, iCompressedSize%, pUncompressed*, iUncompressedSize%, iUncompressedBytesWritten*, iSampleRate%):"_BS_ISteamUser_DecompressVoice@28"
BS_ISteamUser_DecompressVoiceEx(pThis%, pCompressed*, iCompressedSize%, pUncompressed%, iUncompressedSize%, iUncompressedBytesWritten%, iSampleRate%):"_BS_ISteamUser_DecompressVoice@28" BS_ISteamUser_DecompressVoiceEx(pThis%, pCompressed*, iCompressedSize%, pUncompressed%, iUncompressedSize%, iUncompressedBytesWritten%, iSampleRate%):"_BS_ISteamUser_DecompressVoice@28"
BS_ISteamUser_GetVoiceOptimalSampleRate%(pThis%) :"_BS_ISteamUser_GetVoiceOptimalSampleRate@4" BS_ISteamUser_GetVoiceOptimalSampleRate%(pThis%) :"_BS_ISteamUser_GetVoiceOptimalSampleRate@4"
BS_ISteamUser_GetAuthSessionTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamUser_GetAuthSessionTicket@12" BS_ISteamUser_GetAuthSessionTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamUser_GetAuthSessionTicket@16"
BS_ISteamUser_BeginAuthSession%(pThis%, pAuthTicket*, iAuthTicketSize%, lSteamId%):"_BS_ISteamUser_BeginAuthSession@16" BS_ISteamUser_BeginAuthSession%(pThis%, pAuthTicket*, iAuthTicketSize%, lSteamId%):"_BS_ISteamUser_BeginAuthSession@16"
BS_ISteamUser_EndAuthSession(pThis%, lSteamId%) :"_BS_ISteamUser_EndAuthSession@8" BS_ISteamUser_EndAuthSession(pThis%, lSteamId%) :"_BS_ISteamUser_EndAuthSession@8"
BS_ISteamUser_CancelAuthTicket(pThis%, hAuthTicket%) :"_BS_ISteamUser_CancelAuthTicket@8" BS_ISteamUser_CancelAuthTicket(pThis%, hAuthTicket%) :"_BS_ISteamUser_CancelAuthTicket@8"
BS_ISteamUser_UserHasLicenseForApp%(pThis%, lSteamId%, iAppId%) :"_BS_ISteamUser_UserHasLicenseForApp@12" BS_ISteamUser_UserHasLicenseForApp%(pThis%, lSteamId%, iAppId%) :"_BS_ISteamUser_UserHasLicenseForApp@12"
BS_ISteamUser_IsBehindNAT%(pThis%) :"_BS_ISteamUser_IsBehindNAT@4" BS_ISteamUser_IsBehindNAT%(pThis%) :"_BS_ISteamUser_IsBehindNAT@4"
BS_ISteamUser_AdvertiseGame%(pThis%, lSteamId%, iIp%, sPort%) :"_BS_ISteamUser_AdvertiseGame@16" BS_ISteamUser_AdvertiseGame%(pThis%, lSteamId%, iIp%, sPort%) :"_BS_ISteamUser_AdvertiseGame@16"
BS_ISteamUser_RequestEncryptedAppTicket%(pThis%, pData*, iDataSize%) :"_BS_ISteamUser_RequestEncryptedAppTicket@12" BS_ISteamUser_RequestEncryptedAppTicket%(pThis%, pData*, iDataSize%) :"_BS_ISteamUser_RequestEncryptedAppTicket@12"
BS_ISteamUser_GetEncryptedAppTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamUser_GetEncryptedAppTicket@16" BS_ISteamUser_GetEncryptedAppTicket%(pThis%, pTicket*, iTicketSize%, piTicketSize*):"_BS_ISteamUser_GetEncryptedAppTicket@16"
BS_ISteamUser_GetGameBadgeLevel%(pThis%, iSeries%, bFoil%) :"_BS_ISteamUser_GetGameBadgeLevel@12" BS_ISteamUser_GetGameBadgeLevel%(pThis%, iSeries%, bFoil%) :"_BS_ISteamUser_GetGameBadgeLevel@12"
BS_ISteamUser_GetPlayerSteamLevel%(pThis%) :"_BS_ISteamUser_GetPlayerSteamLevel@4" BS_ISteamUser_GetPlayerSteamLevel%(pThis%) :"_BS_ISteamUser_GetPlayerSteamLevel@4"
BS_ISteamUser_RequestStoreAuthURL%(pThis%, cRedirectUrl$) :"_BS_ISteamUser_RequestStoreAuthURL@8" BS_ISteamUser_RequestStoreAuthURL%(pThis%, cRedirectUrl$) :"_BS_ISteamUser_RequestStoreAuthURL@8"
+76 -76
View File
@@ -1,77 +1,77 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; UserStats ------------------------------------------------------------------- ; UserStats -------------------------------------------------------------------
BS_UserStats%() :"_BS_UserStats@0" BS_UserStats%() :"_BS_UserStats@0"
BS_UserStats_RequestCurrentStats%(pThis%) :"_BS_UserStats_RequestCurrentStats@4" BS_UserStats_RequestCurrentStats%(pThis%) :"_BS_UserStats_RequestCurrentStats@4"
BS_UserStats_GetStat%(pThis%, cName$, pData*) :"_BS_UserStats_GetStat@12" BS_UserStats_GetStat%(pThis%, cName$, pData*) :"_BS_UserStats_GetStat@12"
BS_UserStats_GetStatEx%(pThis%, cName$, pData%) :"_BS_UserStats_GetStat@12" BS_UserStats_GetStatEx%(pThis%, cName$, pData%) :"_BS_UserStats_GetStat@12"
BS_UserStats_GetStatF%(pThis%, cName$, pData*) :"_BS_UserStats_GetStatF@12" BS_UserStats_GetStatF%(pThis%, cName$, pData*) :"_BS_UserStats_GetStatF@12"
BS_UserStats_GetStatFEx%(pThis%, cName$, pData%) :"_BS_UserStats_GetStatF@12" BS_UserStats_GetStatFEx%(pThis%, cName$, pData%) :"_BS_UserStats_GetStatF@12"
BS_UserStats_SetStat%(pThis%, cName$, pData%) :"_BS_UserStats_SetStat@12" BS_UserStats_SetStat%(pThis%, cName$, pData%) :"_BS_UserStats_SetStat@12"
BS_UserStats_SetStatF%(pThis%, cName$, pData#) :"_BS_UserStats_SetStatF@12" BS_UserStats_SetStatF%(pThis%, cName$, pData#) :"_BS_UserStats_SetStatF@12"
BS_UserStats_UpdateAvgRateStat%(pThis%, cName$, fCountThisSession#, dSessionLength%):"_BS_UserStats_UpdateAvgRateStat@16" BS_UserStats_UpdateAvgRateStat%(pThis%, cName$, fCountThisSession#, dSessionLength%):"_BS_UserStats_UpdateAvgRateStat@16"
BS_UserStats_GetAchievement%(pThis%, cName$, pbAchieved*) :"_BS_UserStats_GetAchievement@12" BS_UserStats_GetAchievement%(pThis%, cName$, pbAchieved*) :"_BS_UserStats_GetAchievement@12"
BS_UserStats_GetAchievementEx%(pThis%, cName$, pbAchieved%) :"_BS_UserStats_GetAchievement@12" BS_UserStats_GetAchievementEx%(pThis%, cName$, pbAchieved%) :"_BS_UserStats_GetAchievement@12"
BS_UserStats_SetAchievement%(pThis%, cName$) :"_BS_UserStats_SetAchievement@8" BS_UserStats_SetAchievement%(pThis%, cName$) :"_BS_UserStats_SetAchievement@8"
BS_UserStats_ClearAchievement%(pThis%, cName$) :"_BS_UserStats_ClearAchievement@8" BS_UserStats_ClearAchievement%(pThis%, cName$) :"_BS_UserStats_ClearAchievement@8"
BS_UserStats_GetAchievementAndUnlockTime%(pThis%, cName$, pbAchieved*, piUnlockTime*):"_BS_UserStats_GetAchievementAndUnlockTime@16" BS_UserStats_GetAchievementAndUnlockTime%(pThis%, cName$, pbAchieved*, piUnlockTime*):"_BS_UserStats_GetAchievementAndUnlockTime@16"
BS_UserStats_GetAchievementAndUnlockTimeEx%(pThis%, cName$, pbAchieved%, piUnlockTime%):"_BS_UserStats_GetAchievementAndUnlockTime@16" BS_UserStats_GetAchievementAndUnlockTimeEx%(pThis%, cName$, pbAchieved%, piUnlockTime%):"_BS_UserStats_GetAchievementAndUnlockTime@16"
BS_UserStats_StoreStats%(pThis%) :"_BS_UserStats_StoreStats@4" BS_UserStats_StoreStats%(pThis%) :"_BS_UserStats_StoreStats@4"
BS_UserStats_GetAchievementIcon%(pThis%, cName$) :"_BS_UserStats_GetAchievementIcon@8" BS_UserStats_GetAchievementIcon%(pThis%, cName$) :"_BS_UserStats_GetAchievementIcon@8"
BS_UserStats_GetAchievementDisplayAttribute$(pThis%, cName$, cKey$) :"_BS_UserStats_GetAchievementDisplayAttribute@12" BS_UserStats_GetAchievementDisplayAttribute$(pThis%, cName$, cKey$) :"_BS_UserStats_GetAchievementDisplayAttribute@12"
BS_UserStats_IndicateAchievementProgress%(pThis%, cName$, iProgress%, iMaxProgress%):"_BS_UserStats_IndicateAchievementProgress@16" BS_UserStats_IndicateAchievementProgress%(pThis%, cName$, iProgress%, iMaxProgress%):"_BS_UserStats_IndicateAchievementProgress@16"
BS_UserStats_GetNumAchievements%(pThis%) :"_BS_UserStats_GetNumAchievements@4" BS_UserStats_GetNumAchievements%(pThis%) :"_BS_UserStats_GetNumAchievements@4"
BS_UserStats_GetAchievementName$(pThis%, iAchievement%) :"_BS_UserStats_GetAchievementName@8" BS_UserStats_GetAchievementName$(pThis%, iAchievement%) :"_BS_UserStats_GetAchievementName@8"
BS_UserStats_RequestUserStats%(pThis%, lSteamId%) :"_BS_UserStats_RequestUserStats@8" BS_UserStats_RequestUserStats%(pThis%, lSteamId%) :"_BS_UserStats_RequestUserStats@8"
BS_UserStats_GetUserStat%(pThis%, lSteamId%, cName$, pData*) :"_BS_UserStats_GetUserStat@16" BS_UserStats_GetUserStat%(pThis%, lSteamId%, cName$, pData*) :"_BS_UserStats_GetUserStat@16"
BS_UserStats_GetUserStatEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_UserStats_GetUserStat@16" BS_UserStats_GetUserStatEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_UserStats_GetUserStat@16"
BS_UserStats_GetUserStatF%(pThis%, lSteamId%, cName$, pData*) :"_BS_UserStats_GetUserStatF@16" BS_UserStats_GetUserStatF%(pThis%, lSteamId%, cName$, pData*) :"_BS_UserStats_GetUserStatF@16"
BS_UserStats_GetUserStatFEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_UserStats_GetUserStatF@16" BS_UserStats_GetUserStatFEx%(pThis%, lSteamId%, cName$, pData%) :"_BS_UserStats_GetUserStatF@16"
BS_UserStats_GetUserAchievement%(pThis%, lSteamId%, cName$, pbAchieved*) :"_BS_UserStats_GetUserAchievement@16" BS_UserStats_GetUserAchievement%(pThis%, lSteamId%, cName$, pbAchieved*) :"_BS_UserStats_GetUserAchievement@16"
BS_UserStats_GetUserAchievementEx%(pThis%, lSteamId%, cName$, pbAchieved%) :"_BS_UserStats_GetUserAchievement@16" BS_UserStats_GetUserAchievementEx%(pThis%, lSteamId%, cName$, pbAchieved%) :"_BS_UserStats_GetUserAchievement@16"
BS_UserStats_GetUserAchievementAndUnlockTime%(pThis%, lSteamId%, cName$, pbAchieved*, piUnlockTime*):"_BS_UserStats_GetUserAchievementAndUnlockTime@20" BS_UserStats_GetUserAchievementAndUnlockTime%(pThis%, lSteamId%, cName$, pbAchieved*, piUnlockTime*):"_BS_UserStats_GetUserAchievementAndUnlockTime@20"
BS_UserStats_GetUserAchievementAndUnlockTimeEx%(pThis%, lSteamId%, cName$, pbAchieved%, piUnlockTime%):"_BS_UserStats_GetUserAchievementAndUnlockTime@20" BS_UserStats_GetUserAchievementAndUnlockTimeEx%(pThis%, lSteamId%, cName$, pbAchieved%, piUnlockTime%):"_BS_UserStats_GetUserAchievementAndUnlockTime@20"
BS_UserStats_ResetAllStats%(pThis%, bAchievementsToo%) :"_BS_UserStats_ResetAllStats@8" BS_UserStats_ResetAllStats%(pThis%, bAchievementsToo%) :"_BS_UserStats_ResetAllStats@8"
BS_UserStats_FindOrCreateLeaderboard%(pThis%, cLeaderboardName$, eLeaderboardSortMethod%, eLeaderboardDisplayType%):"_BS_UserStats_FindOrCreateLeaderboard@16" BS_UserStats_FindOrCreateLeaderboard%(pThis%, cLeaderboardName$, eLeaderboardSortMethod%, eLeaderboardDisplayType%):"_BS_UserStats_FindOrCreateLeaderboard@16"
BS_UserStats_FindLeaderboard%(pThis%, cLeaderboardName$) :"_BS_UserStats_FindLeaderboard@8" BS_UserStats_FindLeaderboard%(pThis%, cLeaderboardName$) :"_BS_UserStats_FindLeaderboard@8"
BS_UserStats_GetLeaderboardName$(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardName@8" BS_UserStats_GetLeaderboardName$(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardName@8"
BS_UserStats_GetLeaderboardEntryCount%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardEntryCount@8" BS_UserStats_GetLeaderboardEntryCount%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardEntryCount@8"
BS_UserStats_GetLeaderboardSortMethod%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardSortMethod@8" BS_UserStats_GetLeaderboardSortMethod%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardSortMethod@8"
BS_UserStats_GetLeaderboardDisplayType%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardDisplayType@8" BS_UserStats_GetLeaderboardDisplayType%(pThis%, hSteamLeaderboard%) :"_BS_UserStats_GetLeaderboardDisplayType@8"
BS_UserStats_DownloadLeaderboardEntries%(pThis%, hSteamLeaderboard%, eLeaderboardDataRequest%, iRangeStart%, iRangeEnd%):"_BS_UserStats_DownloadLeaderboardEntries@20" BS_UserStats_DownloadLeaderboardEntries%(pThis%, hSteamLeaderboard%, eLeaderboardDataRequest%, iRangeStart%, iRangeEnd%):"_BS_UserStats_DownloadLeaderboardEntries@20"
BS_UserStats_DownloadLeaderboardEntriesForUsers%(pThis%, hSteamLeaderboard%, plUsers*, iUserCount%):"_BS_UserStats_DownloadLeaderboardEntriesForUsers@16" BS_UserStats_DownloadLeaderboardEntriesForUsers%(pThis%, hSteamLeaderboard%, plUsers*, iUserCount%):"_BS_UserStats_DownloadLeaderboardEntriesForUsers@16"
BS_UserStats_DownloadLeaderboardEntriesForUsersEx%(pThis%, hSteamLeaderboard%, plUsers%, iUserCount%):"_BS_UserStats_DownloadLeaderboardEntriesForUsers@16" BS_UserStats_DownloadLeaderboardEntriesForUsersEx%(pThis%, hSteamLeaderboard%, plUsers%, iUserCount%):"_BS_UserStats_DownloadLeaderboardEntriesForUsers@16"
BS_UserStats_GetDownloadedLeaderboardEntry%(lpSteamUsers%, hSteamLeaderboardEntries%, iIndex%, pLeaderboardEntry*, pDetails*, iDetailsMax%):"_BS_UserStats_GetDownloadedLeaderboardEntry@24" BS_UserStats_GetDownloadedLeaderboardEntry%(lpSteamUsers%, hSteamLeaderboardEntries%, iIndex%, pLeaderboardEntry*, pDetails*, iDetailsMax%):"_BS_UserStats_GetDownloadedLeaderboardEntry@24"
BS_UserStats_GetDownloadedLeaderboardEntryEx%(lpSteamUsers%, hSteamLeaderboardEntries%, iIndex%, pLeaderboardEntry%, pDetails%, iDetailsMax%):"_BS_UserStats_GetDownloadedLeaderboardEntry@24" BS_UserStats_GetDownloadedLeaderboardEntryEx%(lpSteamUsers%, hSteamLeaderboardEntries%, iIndex%, pLeaderboardEntry%, pDetails%, iDetailsMax%):"_BS_UserStats_GetDownloadedLeaderboardEntry@24"
BS_UserStats_UploadLeaderboardScore%(pThis%, hSteamLeaderboard%, eLeaderboardUploadScoreMethod%, iScore%, pScoreDetails*, iScoreDetailsCount%):"_BS_UserStats_UploadLeaderboardScore@24" BS_UserStats_UploadLeaderboardScore%(pThis%, hSteamLeaderboard%, eLeaderboardUploadScoreMethod%, iScore%, pScoreDetails*, iScoreDetailsCount%):"_BS_UserStats_UploadLeaderboardScore@24"
BS_UserStats_UploadLeaderboardScoreEx%(pThis%, hSteamLeaderboard%, eLeaderboardUploadScoreMethod%, iScore%, pScoreDetails%, iScoreDetailsCount%):"_BS_UserStats_UploadLeaderboardScore@24" BS_UserStats_UploadLeaderboardScoreEx%(pThis%, hSteamLeaderboard%, eLeaderboardUploadScoreMethod%, iScore%, pScoreDetails%, iScoreDetailsCount%):"_BS_UserStats_UploadLeaderboardScore@24"
BS_UserStats_AttachLeaderboardUGC%(pThis%, hSteamLeaderboard%, hUGC%) :"_BS_UserStats_AttachLeaderboardUGC@12" BS_UserStats_AttachLeaderboardUGC%(pThis%, hSteamLeaderboard%, hUGC%) :"_BS_UserStats_AttachLeaderboardUGC@12"
BS_UserStats_GetNumberOfCurrentPlayers%(pThis%) :"_BS_UserStats_GetNumberOfCurrentPlayers@4" BS_UserStats_GetNumberOfCurrentPlayers%(pThis%) :"_BS_UserStats_GetNumberOfCurrentPlayers@4"
BS_UserStats_RequestGlobalAchievementPercentages%(pThis%) :"_BS_UserStats_RequestGlobalAchievementPercentages@4" BS_UserStats_RequestGlobalAchievementPercentages%(pThis%) :"_BS_UserStats_RequestGlobalAchievementPercentages@4"
BS_UserStats_GetMostAchievedAchievementInfo%(pThis%, cName$, iNameLength%, pfPercent*, pbAchieved*):"_BS_UserStats_GetMostAchievedAchievementInfo@20" BS_UserStats_GetMostAchievedAchievementInfo%(pThis%, cName$, iNameLength%, pfPercent*, pbAchieved*):"_BS_UserStats_GetMostAchievedAchievementInfo@20"
BS_UserStats_GetMostAchievedAchievementInfoEx%(pThis%, cName$, iNameLength%, pfPercent%, pbAchieved%):"_BS_UserStats_GetMostAchievedAchievementInfo@20" BS_UserStats_GetMostAchievedAchievementInfoEx%(pThis%, cName$, iNameLength%, pfPercent%, pbAchieved%):"_BS_UserStats_GetMostAchievedAchievementInfo@20"
BS_UserStats_GetNextMostAchievedAchievementInfo%(pThis%, iIteratorPrevious%, cName$, iNameLength%, pfPercent*, pbAchieved*):"_BS_UserStats_GetNextMostAchievedAchievementInfo@24" BS_UserStats_GetNextMostAchievedAchievementInfo%(pThis%, iIteratorPrevious%, cName$, iNameLength%, pfPercent*, pbAchieved*):"_BS_UserStats_GetNextMostAchievedAchievementInfo@24"
BS_UserStats_GetNextMostAchievedAchievementInfoEx%(pThis%, iIteratorPrevious%, cName$, iNameLength%, pfPercent%, pbAchieved%):"_BS_UserStats_GetNextMostAchievedAchievementInfo@24" BS_UserStats_GetNextMostAchievedAchievementInfoEx%(pThis%, iIteratorPrevious%, cName$, iNameLength%, pfPercent%, pbAchieved%):"_BS_UserStats_GetNextMostAchievedAchievementInfo@24"
BS_UserStats_GetAchievementAchievedPercent%(pThis%, cName$, pfPercent*) :"_BS_UserStats_GetAchievementAchievedPercent@12" BS_UserStats_GetAchievementAchievedPercent%(pThis%, cName$, pfPercent*) :"_BS_UserStats_GetAchievementAchievedPercent@12"
BS_UserStats_GetAchievementAchievedPercentEx%(pThis%, cName$, pfPercent%) :"_BS_UserStats_GetAchievementAchievedPercent@12" BS_UserStats_GetAchievementAchievedPercentEx%(pThis%, cName$, pfPercent%) :"_BS_UserStats_GetAchievementAchievedPercent@12"
BS_UserStats_RequestGlobalStats%(pThis%, iHistoryDays%) :"_BS_UserStats_RequestGlobalStats@8" BS_UserStats_RequestGlobalStats%(pThis%, iHistoryDays%) :"_BS_UserStats_RequestGlobalStats@8"
BS_UserStats_GetGlobalStatL%(pThis, cStatName$, plData%) :"_BS_UserStats_GetGlobalStatL@12" BS_UserStats_GetGlobalStatL%(pThis, cStatName$, plData%) :"_BS_UserStats_GetGlobalStatL@12"
BS_UserStats_GetGlobalStatD%(pThis, cStatName$, pdData%) :"_BS_UserStats_GetGlobalStatD@12" BS_UserStats_GetGlobalStatD%(pThis, cStatName$, pdData%) :"_BS_UserStats_GetGlobalStatD@12"
BS_UserStats_GetGlobalStatHistoryL%(pThis, cStatName$, plDataArray%, iDataSize%):"BS_UserStats_GetGlobalStatHistoryL@16" BS_UserStats_GetGlobalStatHistoryL%(pThis, cStatName$, plDataArray%, iDataSize%):"BS_UserStats_GetGlobalStatHistoryL@16"
BS_UserStats_GetGlobalStatHistoryD%(pThis, cStatName$, pdDataArray%, iDataSize%):"BS_UserStats_GetGlobalStatHistoryD@16" BS_UserStats_GetGlobalStatHistoryD%(pThis, cStatName$, pdDataArray%, iDataSize%):"BS_UserStats_GetGlobalStatHistoryD@16"
+21 -21
View File
@@ -1,21 +1,21 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Utils ----------------------------------------------------------------------- ; Utils -----------------------------------------------------------------------
BS_SteamUtils%() :"_BS_SteamUtils@0" BS_SteamUtils%() :"_BS_SteamUtils@0"
BS_SteamGameServerUtils%() :"_BS_SteamGameServerUtils@0" BS_SteamGameServerUtils%() :"_BS_SteamGameServerUtils@0"
+20 -20
View File
@@ -1,20 +1,20 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http:;www.gnu.org/licenses/>.
.lib "BlitzSteam.dll" .lib "BlitzSteam.dll"
; Utils ----------------------------------------------------------------------- ; Utils -----------------------------------------------------------------------
BS_SteamVideo%() :"_BS_SteamVideo@0" BS_SteamVideo%() :"_BS_SteamVideo@0"
+65 -65
View File
@@ -1,66 +1,66 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
Include "../BlitzSteam.bb" Include "../BlitzSteam.bb"
; Initialize Steam before your next call to Graphics. ; Initialize Steam before your next call to Graphics.
If BS_SteamAPI_Init() = False Then If BS_SteamAPI_Init() = False Then
RuntimeError "Steam: Failed to initialize!" RuntimeError "Steam: Failed to initialize!"
EndIf EndIf
Const FPS = 30 Const FPS = 30
Const FPS_MULT# = 1.0 / FPS Const FPS_MULT# = 1.0 / FPS
; Demo Scene ; Demo Scene
Graphics3D 1024, 768, 32, 2 Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer() SetBuffer BackBuffer()
Local demoTimer = CreateTimer(FPS) Local demoTimer = CreateTimer(FPS)
Local demoRoot = CreatePivot() Local demoRoot = CreatePivot()
Local demoCameraRoot = CreatePivot(demoRoot) Local demoCameraRoot = CreatePivot(demoRoot)
Local demoCamera = CreateCamera(demoCameraRoot) Local demoCamera = CreateCamera(demoCameraRoot)
MoveEntity demoCamera, 0, 0, -10 MoveEntity demoCamera, 0, 0, -10
Local demoCube = CreateCube(demoRoot) Local demoCube = CreateCube(demoRoot)
Local EndGame = False Local EndGame = False
Repeat Repeat
Cls Cls
;! Update ;! Update
; End on Escape ; End on Escape
EndGame = KeyHit(1) EndGame = KeyHit(1)
TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT
;! Render 3D ;! Render 3D
RenderWorld RenderWorld
;! Render 2D ;! Render 2D
Text 0, 0, "Escape to Quit" Text 0, 0, "Escape to Quit"
;! Update Window ;! Update Window
Flip 0 Flip 0
WaitTimer(demoTimer) WaitTimer(demoTimer)
Until EndGame = True Until EndGame = True
; Shut down Steam as the last action of your program. ; Shut down Steam as the last action of your program.
BS_SteamAPI_Shutdown() BS_SteamAPI_Shutdown()
End End
;~IDEal Editor Parameters: ;~IDEal Editor Parameters:
;~C#Blitz3D ;~C#Blitz3D
+127 -127
View File
@@ -1,128 +1,128 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
Include "../BlitzSteam.bb" Include "../BlitzSteam.bb"
; Initialize Steam before your next call to Graphics. ; Initialize Steam before your next call to Graphics.
If BS_SteamAPI_Init() = False Then If BS_SteamAPI_Init() = False Then
RuntimeError "Steam: Failed to initialize!" RuntimeError "Steam: Failed to initialize!"
EndIf EndIf
Const FPS = 30 Const FPS = 30
Const FPS_MULT# = 1.0 / FPS Const FPS_MULT# = 1.0 / FPS
; Demo Scene ; Demo Scene
Graphics3D 1024, 768, 32, 2 Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer() SetBuffer BackBuffer()
Local demoTimer = CreateTimer(FPS) Local demoTimer = CreateTimer(FPS)
Local demoRoot = CreatePivot() Local demoRoot = CreatePivot()
Local demoCameraRoot = CreatePivot(demoRoot) Local demoCameraRoot = CreatePivot(demoRoot)
Local demoCamera = CreateCamera(demoCameraRoot) Local demoCamera = CreateCamera(demoCameraRoot)
MoveEntity demoCamera, 0, 0, -10 MoveEntity demoCamera, 0, 0, -10
Local demoCube = CreateCube(demoRoot) Local demoCube = CreateCube(demoRoot)
; SteamAppList stuff ; SteamAppList stuff
Type SteamAppList Type SteamAppList
Field AppId% Field AppId%
Field Name$ Field Name$
Field InstallDir$ Field InstallDir$
Field BuildId% Field BuildId%
End Type End Type
Global SteamAppList_Count% Global SteamAppList_Count%
Function SteamAppList_Fill() Function SteamAppList_Fill()
SteamAppList_Count = BS_ISteamAppList_GetNumInstalledApps(BS_SteamAppList()) SteamAppList_Count = BS_ISteamAppList_GetNumInstalledApps(BS_SteamAppList())
Local Buffer = CreateBank(4 * SteamAppList_Count) Local Buffer = CreateBank(4 * SteamAppList_Count)
Local AppNameBuffer = CreateBank(1024) Local AppNameBuffer = CreateBank(1024)
Local PathBuffer = CreateBank(260) Local PathBuffer = CreateBank(260)
Local AppIdCount = BS_ISteamAppList_GetInstalledApps(BS_SteamAppList(), Buffer, SteamAppList_Count) Local AppIdCount = BS_ISteamAppList_GetInstalledApps(BS_SteamAppList(), Buffer, SteamAppList_Count)
Delete Each SteamAppList Delete Each SteamAppList
For Index = 0 To AppIdCount - 1 For Index = 0 To AppIdCount - 1
Local AppId = PeekInt(Buffer, Index*4) Local AppId = PeekInt(Buffer, Index*4)
Local SAL.SteamAppList = New SteamAppList Local SAL.SteamAppList = New SteamAppList
SAL\AppId = AppId SAL\AppId = AppId
Local AppNameLen = BS_ISteamAppList_GetAppName(BS_SteamAppList(), AppId, AppNameBuffer, 1024) Local AppNameLen = BS_ISteamAppList_GetAppName(BS_SteamAppList(), AppId, AppNameBuffer, 1024)
SAL\Name = PeekCString(AppNameBuffer, 0, AppNameLen) SAL\Name = PeekCString(AppNameBuffer, 0, AppNameLen)
Local PathLen = BS_ISteamAppList_GetAppInstallDir(BS_SteamAppList(), AppId, PathBuffer, 260) Local PathLen = BS_ISteamAppList_GetAppInstallDir(BS_SteamAppList(), AppId, PathBuffer, 260)
SAL\InstallDir = PeekCString(PathBuffer, 0, PathLen) SAL\InstallDir = PeekCString(PathBuffer, 0, PathLen)
SAL\BuildId = BS_ISteamAppList_GetAppBuildId(BS_SteamAppList(), AppId) SAL\BuildId = BS_ISteamAppList_GetAppBuildId(BS_SteamAppList(), AppId)
Next Next
FreeBank AppNameBuffer FreeBank AppNameBuffer
FreeBank PathBuffer FreeBank PathBuffer
FreeBank Buffer FreeBank Buffer
End Function End Function
Function PeekCString$(Bank, Offset=0, Length=-1) Function PeekCString$(Bank, Offset=0, Length=-1)
Local Out$ = "", Pos = Offset Local Out$ = "", Pos = Offset
While Abs(Length) > 0 While Abs(Length) > 0
Length = Length - 1 Length = Length - 1
Local by = PeekByte(Bank, Pos) Local by = PeekByte(Bank, Pos)
If by = 0 Then If by = 0 Then
Length = 0 Length = 0
Else Else
Out = Out + Chr(by) Out = Out + Chr(by)
EndIf EndIf
Pos = Pos + 1 Pos = Pos + 1
Wend Wend
Return Out Return Out
End Function End Function
SteamAppList_Fill() SteamAppList_Fill()
; Main Loop ; Main Loop
Local EndGame = False Local EndGame = False
Repeat Repeat
Cls Cls
;! Update ;! Update
; End on Escape ; End on Escape
EndGame = KeyHit(1) EndGame = KeyHit(1)
TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT
;! Render 3D ;! Render 3D
RenderWorld RenderWorld
;! Render 2D ;! Render 2D
Text 0, 0, "Escape to Quit" Text 0, 0, "Escape to Quit"
Text 0,15, "Installed Apps: " + SteamAppList_Count Text 0,15, "Installed Apps: " + SteamAppList_Count
Local SAL.SteamAppList, Index = 0 Local SAL.SteamAppList, Index = 0
For SAL.SteamAppList = Each SteamAppList For SAL.SteamAppList = Each SteamAppList
Index = Index + 1 Index = Index + 1
Text 0, 30 + Index* 15, RSet(SAL\AppId, 6) + "/" + RSet(SAL\BuildId, 8) + ": " + SAL\Name + " (Installed: '" + SAL\InstallDir + "')" Text 0, 30 + Index* 15, RSet(SAL\AppId, 6) + "/" + RSet(SAL\BuildId, 8) + ": " + SAL\Name + " (Installed: '" + SAL\InstallDir + "')"
Next Next
;! Update Window ;! Update Window
Flip 0 Flip 0
WaitTimer(demoTimer) WaitTimer(demoTimer)
Until EndGame = True Until EndGame = True
; Shut down Steam as the last action of your program. ; Shut down Steam as the last action of your program.
BS_SteamAPI_Shutdown() BS_SteamAPI_Shutdown()
End End
;~IDEal Editor Parameters: ;~IDEal Editor Parameters:
;~C#Blitz3D ;~C#Blitz3D
+178 -178
View File
@@ -1,179 +1,179 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
Include "../BlitzSteam.bb" Include "../BlitzSteam.bb"
; Initialize Steam before your next call to Graphics. ; Initialize Steam before your next call to Graphics.
If BS_SteamAPI_Init() = False Then If BS_SteamAPI_Init() = False Then
RuntimeError "Steam: Failed to initialize!" RuntimeError "Steam: Failed to initialize!"
EndIf EndIf
Const FPS = 30 Const FPS = 30
Const FPS_MULT# = 1.0 / FPS Const FPS_MULT# = 1.0 / FPS
; Demo Scene ; Demo Scene
Graphics3D 1024, 768, 32, 2 Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer() SetBuffer BackBuffer()
Local demoTimer = CreateTimer(FPS) Local demoTimer = CreateTimer(FPS)
Local demoRoot = CreatePivot() Local demoRoot = CreatePivot()
Local demoCameraRoot = CreatePivot(demoRoot) Local demoCameraRoot = CreatePivot(demoRoot)
Local demoCamera = CreateCamera(demoCameraRoot) Local demoCamera = CreateCamera(demoCameraRoot)
MoveEntity demoCamera, 0, 0, -10 MoveEntity demoCamera, 0, 0, -10
Local demoCube = CreateCube(demoRoot) Local demoCube = CreateCube(demoRoot)
; SteamApps Stuff ; SteamApps Stuff
Type SteamAppsDLC Type SteamAppsDLC
Field Id% Field Id%
Field Available% Field Available%
Field Name$ Field Name$
End Type End Type
Global SteamAppsDLC_Count Global SteamAppsDLC_Count
Function SteamAppsDLC_Fill() Function SteamAppsDLC_Fill()
Local IdBuffer = CreateBank(4) Local IdBuffer = CreateBank(4)
Local AvailableBuffer = CreateBank(4) Local AvailableBuffer = CreateBank(4)
Local NameBuffer = CreateBank(1024) Local NameBuffer = CreateBank(1024)
SteamAppsDLC_Count = BS_ISteamApps_GetDLCCount(BS_SteamApps()) SteamAppsDLC_Count = BS_ISteamApps_GetDLCCount(BS_SteamApps())
Delete Each SteamAppsDLC Delete Each SteamAppsDLC
For Index = 0 To SteamAppsDLC_Count - 1 For Index = 0 To SteamAppsDLC_Count - 1
If BS_ISteamApps_GetDLCDataByIndex(BS_SteamApps(), Index, IdBuffer, AvailableBuffer, NameBuffer, 1024) If BS_ISteamApps_GetDLCDataByIndex(BS_SteamApps(), Index, IdBuffer, AvailableBuffer, NameBuffer, 1024)
Local SAD.SteamAppsDLC = New SteamAppsDLC Local SAD.SteamAppsDLC = New SteamAppsDLC
SAD\Id = PeekInt(IdBuffer, 0) SAD\Id = PeekInt(IdBuffer, 0)
SAD\Available = PeekInt(AvailableBuffer, 0) SAD\Available = PeekInt(AvailableBuffer, 0)
SAD\Name = PeekCString(NameBuffer, 0, 1024) SAD\Name = PeekCString(NameBuffer, 0, 1024)
Else Else
SteamAppsDLC_Count = SteamAppsDLC_Count - 1 SteamAppsDLC_Count = SteamAppsDLC_Count - 1
EndIf EndIf
Next Next
FreeBank NameBuffer FreeBank NameBuffer
FreeBank AvailableBuffer FreeBank AvailableBuffer
FreeBank IdBuffer FreeBank IdBuffer
End Function End Function
Type SteamAppsDepots Type SteamAppsDepots
Field DepotId Field DepotId
End Type End Type
Global SteamAppsDepots_Count Global SteamAppsDepots_Count
Function SteamAppsDepots_Fill() Function SteamAppsDepots_Fill()
Local DepotsBuffer Local DepotsBuffer
; Exercise: Do this one yourself with the above Type. It's not that hard. ; Exercise: Do this one yourself with the above Type. It's not that hard.
End Function End Function
Function PeekCString$(Bank, Offset=0, Length=-1) Function PeekCString$(Bank, Offset=0, Length=-1)
Local Out$ = "", Pos = Offset Local Out$ = "", Pos = Offset
While Abs(Length) > 0 While Abs(Length) > 0
Length = Length - 1 Length = Length - 1
Local by = PeekByte(Bank, Pos) Local by = PeekByte(Bank, Pos)
If by = 0 Then If by = 0 Then
Length = 0 Length = 0
Else Else
Out = Out + Chr(by) Out = Out + Chr(by)
EndIf EndIf
Pos = Pos + 1 Pos = Pos + 1
Wend Wend
Return Out Return Out
End Function End Function
Local BetaBuffer = CreateBank(1024) Local BetaBuffer = CreateBank(1024)
BS_ISteamApps_GetCurrentBetaName(BS_SteamApps(), BetaBuffer, 1024) BS_ISteamApps_GetCurrentBetaName(BS_SteamApps(), BetaBuffer, 1024)
Local Beta$ = PeekCString(BetaBuffer, 0, 1024) Local Beta$ = PeekCString(BetaBuffer, 0, 1024)
FreeBank BetaBuffer FreeBank BetaBuffer
Local AppInstallDir$, AppInstallDirBuffer = CreateBank(260) Local AppInstallDir$, AppInstallDirBuffer = CreateBank(260)
BS_ISteamApps_GetAppInstallDir(BS_SteamApps(), 480, AppInstallDirBuffer, 260) BS_ISteamApps_GetAppInstallDir(BS_SteamApps(), 480, AppInstallDirBuffer, 260)
AppInstallDir = PeekCString(AppInstallDirBuffer, 0, 260) AppInstallDir = PeekCString(AppInstallDirBuffer, 0, 260)
FreeBank AppInstallDirBuffer FreeBank AppInstallDirBuffer
Local llOwner = BS_ISteamApps_GetAppOwner(BS_SteamApps()) Local llOwner = BS_ISteamApps_GetAppOwner(BS_SteamApps())
Local OwnerId$ = "[U:" + BS_CSteamID_GetAccountInstance(llOwner) + ":" + BS_CSteamID_GetAccountID(llOwner) + "] STEAM_" + (BS_CSteamID_GetEAccountType(llOwner) - 1) + ":" + (BS_CSteamID_GetEUniverse(llOwner) - 1) + ":" + (BS_CSteamID_GetAccountID(llOwner) / 2) Local OwnerId$ = "[U:" + BS_CSteamID_GetAccountInstance(llOwner) + ":" + BS_CSteamID_GetAccountID(llOwner) + "] STEAM_" + (BS_CSteamID_GetEAccountType(llOwner) - 1) + ":" + (BS_CSteamID_GetEUniverse(llOwner) - 1) + ":" + (BS_CSteamID_GetAccountID(llOwner) / 2)
BS_CSteamID_Destroy llOwner BS_CSteamID_Destroy llOwner
; Main Loop ; Main Loop
Local EndGame = False Local EndGame = False
Repeat Repeat
Cls Cls
;! Update ;! Update
; End on Escape ; End on Escape
EndGame = KeyHit(1) EndGame = KeyHit(1)
TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT
;! Render 3D ;! Render 3D
RenderWorld RenderWorld
;! Render 2D ;! Render 2D
Text 0, 0, "Escape to Quit" Text 0, 0, "Escape to Quit"
Text 0, 30, "Is Subscribed? " + BS_ISteamApps_IsSubscribed(BS_SteamApps()) Text 0, 30, "Is Subscribed? " + BS_ISteamApps_IsSubscribed(BS_SteamApps())
Text 0, 45, "Is Low Violence? " + BS_ISteamApps_IsLowViolence(BS_SteamApps()) Text 0, 45, "Is Low Violence? " + BS_ISteamApps_IsLowViolence(BS_SteamApps())
Text 0, 60, "Is Cybercafe? " + BS_ISteamApps_IsCybercafe(BS_SteamApps()) Text 0, 60, "Is Cybercafe? " + BS_ISteamApps_IsCybercafe(BS_SteamApps())
Text 0, 75, "Is VAC Banned? " + BS_ISteamApps_IsVACBanned(BS_SteamApps()) Text 0, 75, "Is VAC Banned? " + BS_ISteamApps_IsVACBanned(BS_SteamApps())
Text 0, 90, "Current Game Language: " + BS_ISteamApps_GetCurrentGameLanguage(BS_SteamApps()) Text 0, 90, "Current Game Language: " + BS_ISteamApps_GetCurrentGameLanguage(BS_SteamApps())
Text 0,105, "Available Game Languages: " + BS_ISteamApps_GetAvailableGameLanguages(BS_SteamApps()) Text 0,105, "Available Game Languages: " + BS_ISteamApps_GetAvailableGameLanguages(BS_SteamApps())
Text 0,120, "Is Subscribed App (480)? " + BS_ISteamApps_IsSubscribedApp(BS_SteamApps(), 480) Text 0,120, "Is Subscribed App (480)? " + BS_ISteamApps_IsSubscribedApp(BS_SteamApps(), 480)
Text 0,135, "Is DLC (323180) Installed? " + BS_ISteamApps_IsDlcInstalled(BS_SteamApps(), 323180) ; Portal 2 Soundtrack DLC Text 0,135, "Is DLC (323180) Installed? " + BS_ISteamApps_IsDlcInstalled(BS_SteamApps(), 323180) ; Portal 2 Soundtrack DLC
Text 0,150, "Earliest Purchase Unix Time (480): " + BS_ISteamApps_GetEarliestPurchaseUnixTime(BS_SteamApps(), 480) Text 0,150, "Earliest Purchase Unix Time (480): " + BS_ISteamApps_GetEarliestPurchaseUnixTime(BS_SteamApps(), 480)
Text 0,165, "Is Subscribed from Free Weekend? " + BS_ISteamApps_IsSubscribedFromFreeWeekend(BS_SteamApps()) Text 0,165, "Is Subscribed from Free Weekend? " + BS_ISteamApps_IsSubscribedFromFreeWeekend(BS_SteamApps())
Text 0,180, "DLC Count: " + BS_ISteamApps_GetDLCCount(BS_SteamApps()) Text 0,180, "DLC Count: " + BS_ISteamApps_GetDLCCount(BS_SteamApps())
Text 0,195, "Current Beta Name: " + Beta Text 0,195, "Current Beta Name: " + Beta
Text 0,210, "App Install Dir: " + AppInstallDir$ Text 0,210, "App Install Dir: " + AppInstallDir$
Text 0,225, "Is App Installed (480): " + BS_ISteamApps_IsAppInstalled(BS_SteamApps(), 480) Text 0,225, "Is App Installed (480): " + BS_ISteamApps_IsAppInstalled(BS_SteamApps(), 480)
Text 0,240, "App Owner Id: " + OwnerId Text 0,240, "App Owner Id: " + OwnerId
Text 0,255, "App Built Id: " + BS_ISteamApps_GetAppBuildId(BS_SteamApps()) Text 0,255, "App Built Id: " + BS_ISteamApps_GetAppBuildId(BS_SteamApps())
; BS_ISteamApps_GetLanchQueryParam$(BS_SteamApps(), pchKey$) ; BS_ISteamApps_GetLanchQueryParam$(BS_SteamApps(), pchKey$)
; // Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1;param2=value2;param3=value3 etc. ; // Returns the associated launch param if the game is run via steam://run/<appid>//?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 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, ; // 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. ; // but it is advised that you not param names beginning with an underscore for your own features.
; BS_ISteamApps_MarkContentCorrupt signals steam that game files are corrupt or missing. Forces a validation after quit and before next start. ; BS_ISteamApps_MarkContentCorrupt signals steam that game files are corrupt or missing. Forces a validation after quit and before next start.
; How To Use: BS_ISteamApps_RequestProofOfPurchaseKey(BS_SteamApps(), nAppId) ; How To Use: BS_ISteamApps_RequestProofOfPurchaseKey(BS_SteamApps(), nAppId)
; // Request cd-key for yourself or owned DLC. If you are interested in this ; // 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 ; // 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. ; // to users when they purchase the game, before the game ships.
; // You'll receive an AppProofOfPurchaseKeyResponse_t callback when ; // You'll receive an AppProofOfPurchaseKeyResponse_t callback when
; // the key is available (which may be immediately). ; // the key is available (which may be immediately).
; Example (Spacewar) does not have CD-Keys. ; Example (Spacewar) does not have CD-Keys.
Text 512, 0, "DLCs: " + SteamAppsDLC_Count Text 512, 0, "DLCs: " + SteamAppsDLC_Count
Local Index = 0, SAD.SteamAppsDLC Local Index = 0, SAD.SteamAppsDLC
For SAD = Each SteamAppsDLC For SAD = Each SteamAppsDLC
Text 512, 15 + Index * 15, SAD\Id + "(" + SAD\Available + "): " + SAD\Name Text 512, 15 + Index * 15, SAD\Id + "(" + SAD\Available + "): " + SAD\Name
; You could install DLCs from the app itself, BS_ISteamApps_InstallDLC, BS_ISteamApps_UninstallDLC ; You could install DLCs from the app itself, BS_ISteamApps_InstallDLC, BS_ISteamApps_UninstallDLC
; BS_ISteamApps_GetDlcDownloadProgress allows you to check the progress, BlitzUtility's LongLong stuff is useful here. ; BS_ISteamApps_GetDlcDownloadProgress allows you to check the progress, BlitzUtility's LongLong stuff is useful here.
Index = Index + 1 Index = Index + 1
Next Next
;! Update Window ;! Update Window
Flip 0 Flip 0
WaitTimer(demoTimer) WaitTimer(demoTimer)
Until EndGame = True Until EndGame = True
; Shut down Steam as the last action of your program. ; Shut down Steam as the last action of your program.
BS_SteamAPI_Shutdown() BS_SteamAPI_Shutdown()
End End
;~IDEal Editor Parameters: ;~IDEal Editor Parameters:
;~C#Blitz3D ;~C#Blitz3D
+67 -67
View File
@@ -1,68 +1,68 @@
; BlitzSteam - Steam wrapper for Blitz ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks) ; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
; ;
; This program is free software: you can redistribute it and/or modify ; This program is free software: you can redistribute it and/or modify
; it under the terms of the GNU Lesser General Public License as ; it under the terms of the GNU Lesser General Public License as
; published by the Free Software Foundation, either version 3 of the ; published by the Free Software Foundation, either version 3 of the
; License, or (at your option) any later version. ; License, or (at your option) any later version.
; ;
; This program is distributed in the hope that it will be useful, ; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of ; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details. ; GNU General Public License for more details.
; ;
; You should have received a copy of the GNU Lesser General Public License ; 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/>. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
Include "../BlitzSteam.bb" Include "../BlitzSteam.bb"
;! Example is incomplete, I do not own a Steam Controller. ;! Example is incomplete, I do not own a Steam Controller.
; Initialize Steam before your next call to Graphics. ; Initialize Steam before your next call to Graphics.
If BS_SteamAPI_Init() = False Then If BS_SteamAPI_Init() = False Then
RuntimeError "Steam: Failed to initialize!" RuntimeError "Steam: Failed to initialize!"
EndIf EndIf
Const FPS = 30 Const FPS = 30
Const FPS_MULT# = 1.0 / FPS Const FPS_MULT# = 1.0 / FPS
; Demo Scene ; Demo Scene
Graphics3D 1024, 768, 32, 2 Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer() SetBuffer BackBuffer()
Local demoTimer = CreateTimer(FPS) Local demoTimer = CreateTimer(FPS)
Local demoRoot = CreatePivot() Local demoRoot = CreatePivot()
Local demoCameraRoot = CreatePivot(demoRoot) Local demoCameraRoot = CreatePivot(demoRoot)
Local demoCamera = CreateCamera(demoCameraRoot) Local demoCamera = CreateCamera(demoCameraRoot)
MoveEntity demoCamera, 0, 0, -10 MoveEntity demoCamera, 0, 0, -10
Local demoCube = CreateCube(demoRoot) Local demoCube = CreateCube(demoRoot)
Local EndGame = False Local EndGame = False
Repeat Repeat
Cls Cls
;! Update ;! Update
; End on Escape ; End on Escape
EndGame = KeyHit(1) EndGame = KeyHit(1)
TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT TurnEntity demoCube, 1 * FPS_MULT, 3 * FPS_MULT, 2.332 * FPS_MULT
;! Render 3D ;! Render 3D
RenderWorld RenderWorld
;! Render 2D ;! Render 2D
Text 0, 0, "Escape to Quit" Text 0, 0, "Escape to Quit"
;! Update Window ;! Update Window
Flip 0 Flip 0
WaitTimer(demoTimer) WaitTimer(demoTimer)
Until EndGame = True Until EndGame = True
; Shut down Steam as the last action of your program. ; Shut down Steam as the last action of your program.
BS_SteamAPI_Shutdown() BS_SteamAPI_Shutdown()
End End
;~IDEal Editor Parameters: ;~IDEal Editor Parameters:
;~C#Blitz3D ;~C#Blitz3D
+395 -380
View File
@@ -1,381 +1,396 @@
Include "../BlitzSteam.bb" ; BlitzSteam - Steam wrapper for Blitz
; Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
;---------------------------------------------------------------- ;
;! Steam Stuff ; 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
; SteamClient: WarningMessageHook ; License, or (at your option) any later version.
Global Steam_WarningMessageHook_Callback = 0 ;
Function Steam_WarningMessageHook(bIsWarning%, pchMessageBuffer%) ; This program is distributed in the hope that it will be useful,
If Steam_WarningMessageHook_Callback = 0 Then ; but WITHOUT ANY WARRANTY; without even the implied warranty of
Steam_WarningMessageHook_Callback = BP_GetFunctionPointer() ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Return ; GNU General Public License for more details.
EndIf ;
; You should have received a copy of the GNU Lesser General Public License
; Read Message from buffer ; along with this program. If not, see <http://www.gnu.org/licenses/>.
Local msg$ = ""
If bIsWarning = 1 Then Include "../BlitzSteam.bb"
msg = "[Warning]" ;----------------------------------------------------------------
Else ;! Steam Stuff
msg = "[Info]" ;----------------------------------------------------------------
EndIf
msg = msg + PeekMemoryStringC(pchMessageBuffer) ; SteamClient: WarningMessageHook
Global Steam_WarningMessageHook_Callback = 0
DebugLog "[Steam]" + msg$ Function Steam_WarningMessageHook(bIsWarning%, pchMessageBuffer%)
End Function:Steam_WarningMessageHook(0, 0) If Steam_WarningMessageHook_Callback = 0 Then
Function PeekMemoryStringC(Memory%, Length%=-1) Steam_WarningMessageHook_Callback = BP_GetFunctionPointer()
Local Ptr = Memory Return
Local iChar = 0, tiChar = 0 EndIf
Local sOut$ = ""
; Read Message from buffer
Repeat Local msg$ = ""
tiChar = PeekMemoryByte(Ptr) If bIsWarning = 1 Then
msg = "[Warning]"
; Advance memory, decrease Length Else
Ptr = Ptr + 1 msg = "[Info]"
Length = Length - 1 EndIf
msg = msg + PeekMemoryStringC(pchMessageBuffer)
If (tiChar = 0) Then
Length = 0 DebugLog "[Steam]" + msg$
Else End Function:Steam_WarningMessageHook(0, 0)
sOut = sOut + Chr(tiChar) Function PeekMemoryStringC(Memory%, Length%=-1)
EndIf Local Ptr = Memory
Until Length = 0 Local iChar = 0, tiChar = 0
Local sOut$ = ""
Return sOut
End Function Repeat
tiChar = PeekMemoryByte(Ptr)
;----------------------------------------------------------------
;! SteamBrowser (Image & Texture Drawing) ; Advance memory, decrease Length
;---------------------------------------------------------------- Ptr = Ptr + 1
Global SteamBrowser_Callback_BrowserReady_p = 0, SteamBrowser_Callback_BrowserReady_c = 0 Length = Length - 1
Global SteamBrowser_Callback_NeedsPaint_p = 0, SteamBrowser_Callback_NeedsPaint_c = 0
Global SteamBrowser_Callback_StartRequest_p = 0, SteamBrowser_Callback_StartRequest_c = 0 If (tiChar = 0) Then
Length = 0
Type SteamBrowser Else
Field Id%, lSteamAPICall% sOut = sOut + Chr(tiChar)
Field Size%[1] ;Width, Height EndIf
Field URL$ Until Length = 0
; CEF Stuff Return sOut
Field UpdateRegion[3] ;X,Y,W,H End Function
Field Serial%, Scale#, ScrollX%, ScrollY%
;----------------------------------------------------------------
; Image Based ;! SteamBrowser (Image & Texture Drawing)
Field hImage% ;----------------------------------------------------------------
Global SteamBrowser_Callback_BrowserReady_p = 0, SteamBrowser_Callback_BrowserReady_c = 0
; Texture Based Global SteamBrowser_Callback_NeedsPaint_p = 0, SteamBrowser_Callback_NeedsPaint_c = 0
Field hTexture% Global SteamBrowser_Callback_StartRequest_p = 0, SteamBrowser_Callback_StartRequest_c = 0
End Type
Type SteamBrowser
Function SteamBrowser_Create.SteamBrowser(Width%, Height%, URL$="http://google.com/", UserAgent$="SteamBrowser", UserCSS$="") Field Id%, lSteamAPICall%
; Create our Object Field Size%[1] ;Width, Height
Local SB.SteamBrowser = New SteamBrowser Field URL$
SB\Id = 0 ; Initialize to 0 until the Browser is ready.
SB\Size[0] = Width ; CEF Stuff
SB\Size[1] = Height Field UpdateRegion[3] ;X,Y,W,H
SB\URL = URL Field Serial%, Scale#, ScrollX%, ScrollY%
SB\lSteamAPICall = BS_ISteamHTMLSurface_CreateBrowser(BS_SteamHTMLSurface(), UserAgent, UserCSS)
; Image Based
; We need to register our callbacks, or nothing will work. Field hImage%
BS_Callback_RegisterResult SteamBrowser_Callback_BrowserReady_c, SB\lSteamAPICall, BS_SteamHTMLSurface_BrowserReady ; Listen to the result of the last SteamAPICall.
BS_Callback_Register SteamBrowser_Callback_NeedsPaint_c, BS_SteamHTMLSurface_NeedsPaint ; Texture Based
BS_Callback_Register SteamBrowser_Callback_StartRequest_c, BS_SteamHTMLSurface_StartRequest Field hTexture%
End Type
; Image Based
SB\hImage = CreateImage(SB\Size[0], SB\Size[1]) Function SteamBrowser_Create.SteamBrowser(Width%, Height%, URL$="http://google.com/", UserAgent$="SteamBrowser", UserCSS$="")
; Texture Based ; Create our Object
SB\hTexture = CreateTexture(SB\Size[0], SB\Size[1], 1+2) Local SB.SteamBrowser = New SteamBrowser
SB\Id = 0 ; Initialize to 0 until the Browser is ready.
Return SB SB\Size[0] = Width
End Function SB\Size[1] = Height
SB\URL = URL
Function SteamBrowser_Destroy(SB.SteamBrowser) SB\lSteamAPICall = BS_ISteamHTMLSurface_CreateBrowser(BS_SteamHTMLSurface(), UserAgent, UserCSS)
; Texture Based
FreeTexture SB\hTexture ; We need to register our callbacks, or nothing will work.
; Image Based BS_Callback_RegisterResult SteamBrowser_Callback_BrowserReady_c, SB\lSteamAPICall, BS_SteamHTMLSurface_BrowserReady ; Listen to the result of the last SteamAPICall.
FreeImage SB\hImage BS_Callback_Register SteamBrowser_Callback_NeedsPaint_c, BS_SteamHTMLSurface_NeedsPaint
BS_Callback_Register SteamBrowser_Callback_StartRequest_c, BS_SteamHTMLSurface_StartRequest
BS_ISteamHTMLSurface_RemoveBrowser BS_SteamHTMLSurface(), SB\Id
Delete SB ; Image Based
End Function SB\hImage = CreateImage(SB\Size[0], SB\Size[1])
; Texture Based
Function SteamBrowser_Find.SteamBrowser(iId%, lSteamAPICall%) SB\hTexture = CreateTexture(SB\Size[0], SB\Size[1], 1+2)
Local SB.SteamBrowser = Null
; Find by Id Return SB
If iId <> 0 End Function
For SB.SteamBrowser = Each SteamBrowser
If (SB\Id = iId) Then Function SteamBrowser_Destroy(SB.SteamBrowser)
Return SB ; Texture Based
EndIf FreeTexture SB\hTexture
Next ; Image Based
EndIf FreeImage SB\hImage
; Find by SteamAPICall
If lSteamAPICall <> 0 BS_ISteamHTMLSurface_RemoveBrowser BS_SteamHTMLSurface(), SB\Id
For SB.SteamBrowser = Each SteamBrowser Delete SB
If (SB\lSteamAPICall <> 0) And (BS_Long_Compare(lSteamAPICall, SB\lSteamAPICall) = 0) Then End Function
Return SB
EndIf Function SteamBrowser_Find.SteamBrowser(iId%, lSteamAPICall%)
Next Local SB.SteamBrowser = Null
EndIf ; Find by Id
Return Null If iId <> 0
End Function For SB.SteamBrowser = Each SteamBrowser
If (SB\Id = iId) Then
Function SteamBrowser_SetSize(SB.SteamBrowser, Width%, Height%) Return SB
SB\Size[0] = Width EndIf
SB\Size[1] = Height Next
EndIf
; Update Browser Size ; Find by SteamAPICall
BS_ISteamHTMLSurface_SetSize BS_SteamHTMLSurface(), SB\Id, Width, Height If lSteamAPICall <> 0
For SB.SteamBrowser = Each SteamBrowser
; Image Based If (SB\lSteamAPICall <> 0) And (BS_Long_Compare(lSteamAPICall, SB\lSteamAPICall) = 0) Then
FreeImage(SB\hImage) Return SB
SB\hImage = CreateImage(Width, Height) EndIf
; Texture Based Next
FreeTexture(SB\hTexture) EndIf
SB\hTexture = CreateTexture(Width, Height, 1+2) Return Null
End Function End Function
Function SteamBrowser_LoadUrl(SB.SteamBrowser, URL$, PostData$="") Function SteamBrowser_SetSize(SB.SteamBrowser, Width%, Height%)
BS_ISteamHTMLSurface_LoadURL BS_SteamHTMLSurface(), SB\Id, URL, PostData SB\Size[0] = Width
End Function SB\Size[1] = Height
Function SteamBrowser_IsReady(SB.SteamBrowser) ; Update Browser Size
Return (SB\Id <> 0) BS_ISteamHTMLSurface_SetSize BS_SteamHTMLSurface(), SB\Id, Width, Height
End Function
; Image Based
Function SteamBrowser_GetImageHandle(SB.SteamBrowser) FreeImage(SB\hImage)
Return SB\hImage SB\hImage = CreateImage(Width, Height)
End Function ; Texture Based
FreeTexture(SB\hTexture)
Function SteamBrowser_GetTextureHandle(SB.SteamBrowser) SB\hTexture = CreateTexture(Width, Height, 1+2)
Return SB\hTexture End Function
End Function
Function SteamBrowser_LoadUrl(SB.SteamBrowser, URL$, PostData$="")
Function SteamBrowser_Callback_BrowserReady(pvParam%, bIOFailure, lSteamAPICall) BS_ISteamHTMLSurface_LoadURL BS_SteamHTMLSurface(), SB\Id, URL, PostData
If (SteamBrowser_Callback_BrowserReady_p = 0) Then End Function
SteamBrowser_Callback_BrowserReady_p = BP_GetFunctionPointer()
SteamBrowser_Callback_BrowserReady_c = BS_Callback_New(SteamBrowser_Callback_BrowserReady_p) Function SteamBrowser_IsReady(SB.SteamBrowser)
Return Return (SB\Id <> 0)
EndIf End Function
; Search for a valid SteamBrowser object. Function SteamBrowser_GetImageHandle(SB.SteamBrowser)
Local SB.SteamBrowser = SteamBrowser_Find(0, lSteamAPICall) Return SB\hImage
SB\Id = BS_Memory_PeekInt(pvParam, 0) End Function
SteamBrowser_SetSize(SB, SB\Size[0], SB\Size[1])
SteamBrowser_LoadUrl(SB, SB\URL) Function SteamBrowser_GetTextureHandle(SB.SteamBrowser)
Return SB\hTexture
; Destroy our SteamAPICall pointer and clear the value. End Function
BS_Long_Destroy(SB\lSteamAPICall):SB\lSteamAPICall = 0
End Function:SteamBrowser_Callback_BrowserReady(0, 0, 0) Function SteamBrowser_Callback_BrowserReady(pvParam%, bIOFailure, lSteamAPICall)
If (SteamBrowser_Callback_BrowserReady_p = 0) Then
Function SteamBrowser_Callback_NeedsPaint(pvParam%, p2, p3) SteamBrowser_Callback_BrowserReady_p = BP_GetFunctionPointer()
If (SteamBrowser_Callback_NeedsPaint_p = 0) Then SteamBrowser_Callback_BrowserReady_c = BS_Callback_New(SteamBrowser_Callback_BrowserReady_p)
SteamBrowser_Callback_NeedsPaint_p = BP_GetFunctionPointer() Return
SteamBrowser_Callback_NeedsPaint_c = BS_Callback_New(SteamBrowser_Callback_NeedsPaint_p) EndIf
Return
EndIf ; Search for a valid SteamBrowser object.
Local SB.SteamBrowser = SteamBrowser_Find(0, lSteamAPICall)
; Search for a valid SteamBrowser object. SB\Id = BS_Memory_PeekInt(pvParam, 0)
Local SB.SteamBrowser = SteamBrowser_Find(BS_Memory_PeekInt(pvParam, 0), 0) SteamBrowser_SetSize(SB, SB\Size[0], SB\Size[1])
SteamBrowser_LoadUrl(SB, SB\URL)
; Parse Data from pvParam
Local pBuffer, pW, pH, pUpdateX, pUpdateY, pUpdateW, pUpdateH, pScrollX, pScrollY, pScale#, pSerial ; Destroy our SteamAPICall pointer and clear the value.
pBuffer = BS_Memory_PeekInt(pvParam, 4) BS_Long_Destroy(SB\lSteamAPICall):SB\lSteamAPICall = 0
pW = BS_Memory_PeekInt(pvParam, 8) End Function:SteamBrowser_Callback_BrowserReady(0, 0, 0)
pH = BS_Memory_PeekInt(pvParam, 12)
pUpdateX = BS_Memory_PeekInt(pvParam, 16) Function SteamBrowser_Callback_NeedsPaint(pvParam%, p2, p3)
pUpdateY = BS_Memory_PeekInt(pvParam, 20) If (SteamBrowser_Callback_NeedsPaint_p = 0) Then
pUpdateW = BS_Memory_PeekInt(pvParam, 24) SteamBrowser_Callback_NeedsPaint_p = BP_GetFunctionPointer()
pUpdateH = BS_Memory_PeekInt(pvParam, 28) SteamBrowser_Callback_NeedsPaint_c = BS_Callback_New(SteamBrowser_Callback_NeedsPaint_p)
pScrollX = BS_Memory_PeekInt(pvParam, 32) Return
pScrollY = BS_Memory_PeekInt(pvParam, 36) EndIf
pScale = BS_Memory_PeekFloat(pvParam, 40)
pSerial = BS_Memory_PeekInt(pvParam, 44) ; Search for a valid SteamBrowser object.
Local SB.SteamBrowser = SteamBrowser_Find(BS_Memory_PeekInt(pvParam, 0), 0)
; Assign to Object
SB\UpdateRegion[0] = pUpdateX ; Parse Data from pvParam
SB\UpdateRegion[1] = pUpdateY Local pBuffer, pW, pH, pUpdateX, pUpdateY, pUpdateW, pUpdateH, pScrollX, pScrollY, pScale#, pSerial
SB\UpdateRegion[2] = pUpdateW pBuffer = BS_Memory_PeekInt(pvParam, 4)
SB\UpdateRegion[3] = pUpdateH pW = BS_Memory_PeekInt(pvParam, 8)
SB\Scale = pScale pH = BS_Memory_PeekInt(pvParam, 12)
SB\ScrollX = pScrollX pUpdateX = BS_Memory_PeekInt(pvParam, 16)
SB\ScrollY = pScrollY pUpdateY = BS_Memory_PeekInt(pvParam, 20)
SB\Serial = pSerial pUpdateW = BS_Memory_PeekInt(pvParam, 24)
pUpdateH = BS_Memory_PeekInt(pvParam, 28)
; Fix up Buffer Size (Always next bigger 16*n, for whatever reason (SIBLY WHAT DID YOU DO!?)) pScrollX = BS_Memory_PeekInt(pvParam, 32)
Local nW = (16 * Ceil(pW / 16.0)) pScrollY = BS_Memory_PeekInt(pvParam, 36)
;DebugLog ImageWidth(SB\hImage) + ":" + ImageHeight(SB\hImage) pScale = BS_Memory_PeekFloat(pvParam, 40)
pSerial = BS_Memory_PeekInt(pvParam, 44)
; Image Based
Local hImageBuffer = ImageBuffer(SB\hImage) ; Assign to Object
LockBuffer hImageBuffer SB\UpdateRegion[0] = pUpdateX
BS_Helper_CopyMemoryIntMangle pBuffer, BS_Memory_PeekInt(hImageBuffer, 72), 0, pW, pH, nW, SB\Size[1], pUpdateX, pUpdateY, pUpdateW, pUpdateH SB\UpdateRegion[1] = pUpdateY
UnlockBuffer hImageBuffer SB\UpdateRegion[2] = pUpdateW
SB\UpdateRegion[3] = pUpdateH
; Texture Based (Identical) SB\Scale = pScale
Local hTextureBuffer = ImageBuffer(SB\hImage) SB\ScrollX = pScrollX
LockBuffer hTextureBuffer SB\ScrollY = pScrollY
BS_Helper_CopyMemoryIntMangle pBuffer, BS_Memory_PeekInt(hTextureBuffer, 72), 0, pW, pH, nW, SB\Size[1], pUpdateX, pUpdateY, pUpdateW, pUpdateH SB\Serial = pSerial
UnlockBuffer hTextureBuffer
; Fix up Buffer Size (Always next bigger 16*n, for whatever reason (SIBLY WHAT DID YOU DO!?))
Local nW = (16 * Ceil(pW / 16.0))
; pvParam Structure ;DebugLog ImageWidth(SB\hImage) + ":" + ImageHeight(SB\hImage)
;CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint
;CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called ; Image Based
;CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture Local hImageBuffer = ImageBuffer(SB\hImage)
;CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture LockBuffer hImageBuffer
;CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update BS_Helper_CopyMemoryIntMangle pBuffer, BS_Memory_PeekInt(hImageBuffer, 72), 0, pW, pH, nW, SB\Size[1], pUpdateX, pUpdateY, pUpdateW, pUpdateH
;CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update UnlockBuffer hImageBuffer
;CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update
;CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update ; Texture Based (Identical)
;CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered Local hTextureBuffer = ImageBuffer(SB\hImage)
;CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered LockBuffer hTextureBuffer
;CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered BS_Helper_CopyMemoryIntMangle pBuffer, BS_Memory_PeekInt(hTextureBuffer, 72), 0, pW, pH, nW, SB\Size[1], pUpdateX, pUpdateY, pUpdateW, pUpdateH
;CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages UnlockBuffer hTextureBuffer
End Function:SteamBrowser_Callback_NeedsPaint(0, 0, 0)
Function SteamBrowser_Callback_StartRequest(pvParam%, p2, p3) ; pvParam Structure
If (SteamBrowser_Callback_StartRequest_p = 0) Then ;CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint
SteamBrowser_Callback_StartRequest_p = BP_GetFunctionPointer() ;CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called
SteamBrowser_Callback_StartRequest_c = BS_Callback_New(SteamBrowser_Callback_StartRequest_p) ;CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture
Return ;CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture
EndIf ;CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update
;CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update
; Search for a valid SteamBrowser object. ;CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update
Local SB.SteamBrowser = SteamBrowser_Find(BS_Memory_PeekInt(pvParam, 0), 0) ;CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update
;CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered
; Default to allow all requests. (Why not? For an Example, this is good enough.) ;CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered
; Could implement a simple filter using a second type, but why don't you experiment a bit? ;CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered
BS_ISteamHTMLSurface_AllowStartRequest BS_SteamHTMLSurface(), SB\Id, True ;CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages
End Function:SteamBrowser_Callback_StartRequest(0, 0, 0) End Function:SteamBrowser_Callback_NeedsPaint(0, 0, 0)
Function SteamBrowser_Callback_StartRequest(pvParam%, p2, p3)
If (SteamBrowser_Callback_StartRequest_p = 0) Then
SteamBrowser_Callback_StartRequest_p = BP_GetFunctionPointer()
;---------------------------------------------------------------- SteamBrowser_Callback_StartRequest_c = BS_Callback_New(SteamBrowser_Callback_StartRequest_p)
;! Example Code Return
;---------------------------------------------------------------- EndIf
If BS_SteamAPI_Init() = 0 Then RuntimeError "Steam failed to initialize."
; Search for a valid SteamBrowser object.
; Steam: Hooks, Callbacks, CallResults Local SB.SteamBrowser = SteamBrowser_Find(BS_Memory_PeekInt(pvParam, 0), 0)
BS_ISteamClient_SetWarningMessageHook BS_SteamClient(), Steam_WarningMessageHook_Callback
; Default to allow all requests. (Why not? For an Example, this is good enough.)
; Steam: HTMLSurface API ; Could implement a simple filter using a second type, but why don't you experiment a bit?
If BS_SteamHTMLSurface() = 0 Then RuntimeError "Steam: HTMLSurface API is not available." BS_ISteamHTMLSurface_AllowStartRequest BS_SteamHTMLSurface(), SB\Id, True
If BS_ISteamHTMLSurface_Init(BS_SteamHTMLSurface()) = 0 Then RuntimeError "Steam: HTMLSurface API did not want to be initialized?!" End Function:SteamBrowser_Callback_StartRequest(0, 0, 0)
;BS_ISteamHTMLSurface_SetSize BS_SteamHTMLSurface(), 0, GraphicsWidth(), GraphicsHeight()
Const FPS = 60
Const FPS_MULT# = 1.0 / FPS
;----------------------------------------------------------------
; Demo Scene ;! Example Code
Graphics3D 1024, 768, 32, 2 ;----------------------------------------------------------------
SetBuffer BackBuffer() If BS_SteamAPI_Init() = 0 Then RuntimeError "Steam failed to initialize."
Local demoTimer = CreateTimer(FPS) ; Steam: Hooks, Callbacks, CallResults
Local demoRoot = CreatePivot() BS_ISteamClient_SetWarningMessageHook BS_SteamClient(), Steam_WarningMessageHook_Callback
Local demoCameraRoot = CreatePivot(demoRoot)
Local demoCamera = CreateCamera(demoCameraRoot) ; Steam: HTMLSurface API
MoveEntity demoCamera, 0, 0, -10 If BS_SteamHTMLSurface() = 0 Then RuntimeError "Steam: HTMLSurface API is not available."
Local demoCube = CreateCube(demoRoot) If BS_ISteamHTMLSurface_Init(BS_SteamHTMLSurface()) = 0 Then RuntimeError "Steam: HTMLSurface API did not want to be initialized?!"
;BS_ISteamHTMLSurface_SetSize BS_SteamHTMLSurface(), 0, GraphicsWidth(), GraphicsHeight()
; Create a Browser
Local myBrowser.SteamBrowser = SteamBrowser_Create(GraphicsWidth(), GraphicsHeight(), "http://store.steampowered.com/app/368720/") Const FPS = 60
Const FPS_MULT# = 1.0 / FPS
Local Mouse[3], MouseButton[3], Key[255]
While Not KeyHit(1) ; Demo Scene
Cls Graphics3D 1024, 768, 32, 2
SetBuffer BackBuffer()
; Only allow input when the browser is up to date.
;If (myBrowser\iLastDraw > myBrowser\iLastRequest) Then Local demoTimer = CreateTimer(FPS)
If True Local demoRoot = CreatePivot()
; Mouse Input Local demoCameraRoot = CreatePivot(demoRoot)
If Mouse[0] <> MouseX() Or Mouse[1] <> MouseY() Then Local demoCamera = CreateCamera(demoCameraRoot)
Mouse[0] = MouseX() MoveEntity demoCamera, 0, 0, -10
Mouse[1] = MouseY() Local demoCube = CreateCube(demoRoot)
BS_ISteamHTMLSurface_MouseMove BS_SteamHTMLSurface(), myBrowser\Id, MouseX(), MouseY()
EndIf ; Create a Browser
If Mouse[2] <> MouseZ() Then Local myBrowser.SteamBrowser = SteamBrowser_Create(GraphicsWidth(), GraphicsHeight(), "http://store.steampowered.com/app/368720/")
Mouse[2] = MouseZ()
BS_ISteamHTMLSurface_MouseWheel BS_SteamHTMLSurface(), myBrowser\Id, MouseZSpeed()*30 Local Mouse[3], MouseButton[3], Key[255]
EndIf While Not KeyHit(1)
Cls
Local Button
For Button = 1 To 3 ; Only allow input when the browser is up to date.
Local ButtonDown = MouseDown(Button) ;If (myBrowser\iLastDraw > myBrowser\iLastRequest) Then
If MouseButton[Button] <> ButtonDown Then If True
MouseButton[Button] = MouseDown(Button) ; Mouse Input
If Mouse[0] <> MouseX() Or Mouse[1] <> MouseY() Then
If ButtonDown Mouse[0] = MouseX()
BS_ISteamHTMLSurface_MouseDown BS_SteamHTMLSurface(), myBrowser\Id, Button - 1 Mouse[1] = MouseY()
Else BS_ISteamHTMLSurface_MouseMove BS_SteamHTMLSurface(), myBrowser\Id, MouseX(), MouseY()
BS_ISteamHTMLSurface_MouseUp BS_SteamHTMLSurface(), myBrowser\Id, Button - 1 EndIf
EndIf If Mouse[2] <> MouseZ() Then
EndIf Mouse[2] = MouseZ()
Next BS_ISteamHTMLSurface_MouseWheel BS_SteamHTMLSurface(), myBrowser\Id, MouseZSpeed()*30
EndIf
; Keyboard
Local Modifier = BS_EHTMLKeyModifiers_None Local Button
If KeyDown(42) Or KeyDown(54) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_ShiftDown For Button = 1 To 3
If KeyDown(29) Or KeyDown(157) Or KeyDown(184) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_CtrlDown Local ButtonDown = MouseDown(Button)
If KeyDown(56) Or KeyDown(184) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_AltDown If MouseButton[Button] <> ButtonDown Then
MouseButton[Button] = MouseDown(Button)
Local VK
For VK = 0 To 255 If ButtonDown
Local SC = InputEx_User32_MapVirtualKeyEx(VK, 0, 0) BS_ISteamHTMLSurface_MouseDown BS_SteamHTMLSurface(), myBrowser\Id, Button - 1
Else
Local KeyDownN = KeyDown(SC) BS_ISteamHTMLSurface_MouseUp BS_SteamHTMLSurface(), myBrowser\Id, Button - 1
If Key[VK] <> KeyDownN Then EndIf
Key[VK] = KeyDownN EndIf
Next
If KeyDownN = 1 Then
BS_ISteamHTMLSurface_KeyDown BS_SteamHTMLSurface(), myBrowser\Id, VK, Modifier ; Keyboard
Else Local Modifier = BS_EHTMLKeyModifiers_None
BS_ISteamHTMLSurface_KeyUp BS_SteamHTMLSurface(), myBrowser\Id, VK, Modifier If KeyDown(42) Or KeyDown(54) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_ShiftDown
EndIf If KeyDown(29) Or KeyDown(157) Or KeyDown(184) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_CtrlDown
EndIf If KeyDown(56) Or KeyDown(184) Then Modifier = Modifier Or BS_EHTMLKeyModifiers_AltDown
Next
Local GetKeyC = GetKey() Local VK
If GetKeyC For VK = 0 To 255
BS_ISteamHTMLSurface_KeyChar BS_SteamHTMLSurface(), myBrowser\Id, GetKeyC, Modifier Local SC = InputEx_User32_MapVirtualKeyEx(VK, 0, 0)
EndIf
Local KeyDownN = KeyDown(SC)
EndIf If Key[VK] <> KeyDownN Then
Key[VK] = KeyDownN
; Steam: Run any Callbacks
; Q: Why before RenderWorld/Flip? If KeyDownN = 1 Then
; A: If we did any changes, having them available before Rendering helps responsiveness. BS_ISteamHTMLSurface_KeyDown BS_SteamHTMLSurface(), myBrowser\Id, VK, Modifier
; A one-frame Delay is noticeable, even to people claiming the eye only sees 30 fps. Else
; Please read a Biology book if you are one of those, it doesn't work like that. BS_ISteamHTMLSurface_KeyUp BS_SteamHTMLSurface(), myBrowser\Id, VK, Modifier
BS_SteamAPI_RunCallbacks() EndIf
EndIf
RenderWorld Next
Local GetKeyC = GetKey()
;If (myBrowser\iLastDraw > myBrowser\iLastRequest) Then If GetKeyC
If Not KeyDown(57) BS_ISteamHTMLSurface_KeyChar BS_SteamHTMLSurface(), myBrowser\Id, GetKeyC, Modifier
DrawBlock SteamBrowser_GetImageHandle(myBrowser), 0, 0, 0 EndIf
Color 255, 0, 0
Rect myBrowser\UpdateRegion[0],myBrowser\UpdateRegion[1],myBrowser\UpdateRegion[2],myBrowser\UpdateRegion[3], 0 EndIf
Else
EntityTexture demoCube, SteamBrowser_GetTextureHandle(myBrowser) ; Steam: Run any Callbacks
EndIf ; Q: Why before RenderWorld/Flip?
;EndIf ; A: If we did any changes, having them available before Rendering helps responsiveness.
; A one-frame Delay is noticeable, even to people claiming the eye only sees 30 fps.
Flip ; Please read a Biology book if you are one of those, it doesn't work like that.
WaitTimer demoTimer BS_SteamAPI_RunCallbacks()
Wend
RenderWorld
; Destroy existing Browser
SteamBrowser_Destroy(myBrowser):myBrowser = Null ;If (myBrowser\iLastDraw > myBrowser\iLastRequest) Then
If Not KeyDown(57)
; Steam: HTMLSurface API DrawBlock SteamBrowser_GetImageHandle(myBrowser), 0, 0, 0
BS_ISteamHTMLSurface_Shutdown(BS_SteamHTMLSurface()) Color 255, 0, 0
BS_SteamAPI_Shutdown() Rect myBrowser\UpdateRegion[0],myBrowser\UpdateRegion[1],myBrowser\UpdateRegion[2],myBrowser\UpdateRegion[3], 0
Else
EndGraphics EntityTexture demoCube, SteamBrowser_GetTextureHandle(myBrowser)
End EndIf
;EndIf
;~IDEal Editor Parameters:
;~F#8#19 Flip
WaitTimer demoTimer
Wend
; Destroy existing Browser
SteamBrowser_Destroy(myBrowser):myBrowser = Null
; Steam: HTMLSurface API
BS_ISteamHTMLSurface_Shutdown(BS_SteamHTMLSurface())
BS_SteamAPI_Shutdown()
EndGraphics
End
;~IDEal Editor Parameters:
;~F#17#28
;~C#Blitz3D ;~C#Blitz3D
@@ -0,0 +1,88 @@
; 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 <http://www.gnu.org/licenses/>.
Include "../BlitzSteam.bb"
;----------------------------------------------------------------
;! Configuration
;----------------------------------------------------------------
Const APPID = 480 ; Test App / SpaceWar
Const FRAMERATE = 60
Const RESOLUTION_X = 1024
Const RESOLUTION_Y = 768
Const RESOLUTION_Z = 32
Const RESOLUTION_MODE = 2
;----------------------------------------------------------------
;! Init Code
;----------------------------------------------------------------
Global Timer = CreateTimer(FRAMERATE)
Global ServerListResponse_ServerResponded_p%:ServerListResponse_ServerResponded(0, 0)
Global ServerListResponse_RefreshComplete_p%:ServerListResponse_RefreshComplete(0, 0)
Graphics RESOLUTION_X, RESOLUTION_Y, RESOLUTION_Z, RESOLUTION_MODE
SetBuffer BackBuffer()
If Not BS_SteamAPI_Init() Then RuntimeError "Failed to initialize Steam!"
;----------------------------------------------------------------
;! Main Code
;----------------------------------------------------------------
Local Bank =CreateBank(1)
Local pRequestServersResponse = BS_ISteamMatchmakingServerListResponse_New(ServerListResponse_ServerResponded_p, 0, ServerListResponse_RefreshComplete_p)
Local hRequest = BS_ISteamMatchmakingServers_RequestInternetServerList(BS_SteamMatchmakingServers(), 480, Bank, 0, pRequestServersResponse)
While Not KeyHit(1)
WaitTimer Timer
BS_SteamAPI_RunCallbacks()
Wend
BS_ISteamMatchmakingServers_ReleaseRequest(BS_SteamMatchmakingServers(), hRequest)
BS_SteamAPI_Shutdown()
;----------------------------------------------------------------
;! Functions
;----------------------------------------------------------------
Function ServerListResponse_ServerResponded(hRequest%, iServer%)
If (Not ServerListResponse_ServerResponded_p)
ServerListResponse_ServerResponded_p = BP_GetFunctionPointer()
Return
EndIf
Print iServer
End Function
Function ServerListResponse_RefreshComplete(hRequest%, eMatchMakingServerResponse%)
If (Not ServerListResponse_RefreshComplete_p)
ServerListResponse_RefreshComplete_p = BP_GetFunctionPointer()
Return
EndIf
Select eMatchMakingServerResponse
Case BS_EMatchMakingServerResponse_ServerResponded
Print "Got Servers"
Case BS_EMatchMakingServerResponse_ServerFailedToRespond
Print "Server did not respond"
Case BS_EMatchMakingServerResponse_NoServersListedOnMasterServer
Print "No Servers listed for this game."
Default
Print "Unknown"
End Select
End Function
;~IDEal Editor Parameters:
;~C#Blitz3D
+265 -265
View File
@@ -1,266 +1,266 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzCallback.h" #include "BlitzCallback.h"
void BlitzCallback::Initialize() { void BlitzCallback::Initialize() {
#define BlitzCallback_DefineSize(T) BlitzCallback::Sizes.emplace(T::k_iCallback, sizeof(T)); #define BlitzCallback_DefineSize(T) BlitzCallback::Sizes.emplace(T::k_iCallback, sizeof(T));
// Do nothing if it was already done. // Do nothing if it was already done.
if (BlitzCallback::Sizes.size() > 0) if (BlitzCallback::Sizes.size() > 0)
return; return;
// Default to the size of the class itself if no callback id is given. // Default to the size of the class itself if no callback id is given.
BlitzCallback::Sizes.emplace(0, sizeof(BlitzCallback)); BlitzCallback::Sizes.emplace(0, sizeof(BlitzCallback));
// SteamAPI // SteamAPI
// SteamAppList // SteamAppList
BlitzCallback_DefineSize(SteamAppInstalled_t); BlitzCallback_DefineSize(SteamAppInstalled_t);
BlitzCallback_DefineSize(SteamAppUninstalled_t); BlitzCallback_DefineSize(SteamAppUninstalled_t);
// SteamApps // SteamApps
BlitzCallback_DefineSize(DlcInstalled_t); BlitzCallback_DefineSize(DlcInstalled_t);
BlitzCallback_DefineSize(RegisterActivationCodeResponse_t); BlitzCallback_DefineSize(RegisterActivationCodeResponse_t);
BlitzCallback_DefineSize(AppProofOfPurchaseKeyResponse_t); BlitzCallback_DefineSize(AppProofOfPurchaseKeyResponse_t);
BlitzCallback_DefineSize(NewLaunchQueryParameters_t); BlitzCallback_DefineSize(NewLaunchQueryParameters_t);
// SteamController // SteamController
// SteamFriends // SteamFriends
BlitzCallback_DefineSize(PersonaStateChange_t); BlitzCallback_DefineSize(PersonaStateChange_t);
BlitzCallback_DefineSize(GameOverlayActivated_t); BlitzCallback_DefineSize(GameOverlayActivated_t);
BlitzCallback_DefineSize(GameServerChangeRequested_t); BlitzCallback_DefineSize(GameServerChangeRequested_t);
BlitzCallback_DefineSize(GameLobbyJoinRequested_t); BlitzCallback_DefineSize(GameLobbyJoinRequested_t);
BlitzCallback_DefineSize(AvatarImageLoaded_t); BlitzCallback_DefineSize(AvatarImageLoaded_t);
BlitzCallback_DefineSize(ClanOfficerListResponse_t); BlitzCallback_DefineSize(ClanOfficerListResponse_t);
BlitzCallback_DefineSize(FriendRichPresenceUpdate_t); BlitzCallback_DefineSize(FriendRichPresenceUpdate_t);
BlitzCallback_DefineSize(GameRichPresenceJoinRequested_t); BlitzCallback_DefineSize(GameRichPresenceJoinRequested_t);
BlitzCallback_DefineSize(GameConnectedClanChatMsg_t); BlitzCallback_DefineSize(GameConnectedClanChatMsg_t);
BlitzCallback_DefineSize(GameConnectedChatJoin_t); BlitzCallback_DefineSize(GameConnectedChatJoin_t);
BlitzCallback_DefineSize(GameConnectedChatLeave_t); BlitzCallback_DefineSize(GameConnectedChatLeave_t);
BlitzCallback_DefineSize(DownloadClanActivityCountsResult_t); BlitzCallback_DefineSize(DownloadClanActivityCountsResult_t);
BlitzCallback_DefineSize(JoinClanChatRoomCompletionResult_t); BlitzCallback_DefineSize(JoinClanChatRoomCompletionResult_t);
BlitzCallback_DefineSize(GameConnectedFriendChatMsg_t); BlitzCallback_DefineSize(GameConnectedFriendChatMsg_t);
BlitzCallback_DefineSize(FriendsGetFollowerCount_t); BlitzCallback_DefineSize(FriendsGetFollowerCount_t);
BlitzCallback_DefineSize(FriendsIsFollowing_t); BlitzCallback_DefineSize(FriendsIsFollowing_t);
BlitzCallback_DefineSize(FriendsEnumerateFollowingList_t); BlitzCallback_DefineSize(FriendsEnumerateFollowingList_t);
BlitzCallback_DefineSize(SetPersonaNameResponse_t); BlitzCallback_DefineSize(SetPersonaNameResponse_t);
// SteamGameServer // SteamGameServer
BlitzCallback_DefineSize(GSClientApprove_t); BlitzCallback_DefineSize(GSClientApprove_t);
BlitzCallback_DefineSize(GSClientDeny_t); BlitzCallback_DefineSize(GSClientDeny_t);
BlitzCallback_DefineSize(GSClientKick_t); BlitzCallback_DefineSize(GSClientKick_t);
BlitzCallback_DefineSize(GSClientAchievementStatus_t); BlitzCallback_DefineSize(GSClientAchievementStatus_t);
BlitzCallback_DefineSize(GSPolicyResponse_t); BlitzCallback_DefineSize(GSPolicyResponse_t);
BlitzCallback_DefineSize(GSGameplayStats_t); BlitzCallback_DefineSize(GSGameplayStats_t);
BlitzCallback_DefineSize(GSClientGroupStatus_t); BlitzCallback_DefineSize(GSClientGroupStatus_t);
BlitzCallback_DefineSize(GSReputation_t); BlitzCallback_DefineSize(GSReputation_t);
BlitzCallback_DefineSize(AssociateWithClanResult_t); BlitzCallback_DefineSize(AssociateWithClanResult_t);
BlitzCallback_DefineSize(ComputeNewPlayerCompatibilityResult_t); BlitzCallback_DefineSize(ComputeNewPlayerCompatibilityResult_t);
// SteamGameServerStats // SteamGameServerStats
BlitzCallback_DefineSize(GSStatsReceived_t); BlitzCallback_DefineSize(GSStatsReceived_t);
BlitzCallback_DefineSize(GSStatsStored_t); BlitzCallback_DefineSize(GSStatsStored_t);
BlitzCallback_DefineSize(GSStatsUnloaded_t); BlitzCallback_DefineSize(GSStatsUnloaded_t);
// SteamHTMLSurface // SteamHTMLSurface
BlitzCallback_DefineSize(HTML_BrowserReady_t); BlitzCallback_DefineSize(HTML_BrowserReady_t);
// SteamHTTP // SteamHTTP
BlitzCallback_DefineSize(HTTPRequestCompleted_t); BlitzCallback_DefineSize(HTTPRequestCompleted_t);
BlitzCallback_DefineSize(HTTPRequestHeadersReceived_t); BlitzCallback_DefineSize(HTTPRequestHeadersReceived_t);
BlitzCallback_DefineSize(HTTPRequestDataReceived_t); BlitzCallback_DefineSize(HTTPRequestDataReceived_t);
// SteamInventory // SteamInventory
BlitzCallback_DefineSize(SteamInventoryResultReady_t); BlitzCallback_DefineSize(SteamInventoryResultReady_t);
BlitzCallback_DefineSize(SteamInventoryFullUpdate_t); BlitzCallback_DefineSize(SteamInventoryFullUpdate_t);
BlitzCallback_DefineSize(SteamInventoryDefinitionUpdate_t); BlitzCallback_DefineSize(SteamInventoryDefinitionUpdate_t);
// SteamMatchmaking // SteamMatchmaking
// SteamMatchmakingServers // SteamMatchmakingServers
// SteamMusic // SteamMusic
// SteamMusicRemote // SteamMusicRemote
// SteamNetworking // SteamNetworking
BlitzCallback_DefineSize(P2PSessionRequest_t); BlitzCallback_DefineSize(P2PSessionRequest_t);
BlitzCallback_DefineSize(P2PSessionConnectFail_t); BlitzCallback_DefineSize(P2PSessionConnectFail_t);
BlitzCallback_DefineSize(SocketStatusCallback_t); BlitzCallback_DefineSize(SocketStatusCallback_t);
} }
std::map<int32_t, size_t> BlitzCallback::Sizes; std::map<int32_t, size_t> BlitzCallback::Sizes;
BlitzCallback::BlitzCallback(BP_BlitzFunction3_t pFunctionPointer) { BlitzCallback::BlitzCallback(BP_BlitzFunction3_t pFunctionPointer) {
BlitzCallback::Initialize(); BlitzCallback::Initialize();
// Initialize all values to 0. // Initialize all values to 0.
this->m_iCallback = 0; this->m_iCallback = 0;
this->m_nCallbackFlags = 0; this->m_nCallbackFlags = 0;
this->m_hSteamAPICall = 0; this->m_hSteamAPICall = 0;
// Set function pointer. // Set function pointer.
this->m_pFunctionPointer = pFunctionPointer; this->m_pFunctionPointer = pFunctionPointer;
} }
BlitzCallback::~BlitzCallback() { BlitzCallback::~BlitzCallback() {
// Unregister if we are still registered. // Unregister if we are still registered.
this->UnregisterResult(); this->UnregisterResult();
this->Unregister(); this->Unregister();
// Reset all variables to 0. // Reset all variables to 0.
this->m_iCallback = 0; this->m_iCallback = 0;
this->m_nCallbackFlags = 0; this->m_nCallbackFlags = 0;
this->m_hSteamAPICall = 0; this->m_hSteamAPICall = 0;
this->m_pFunctionPointer = 0; this->m_pFunctionPointer = 0;
} }
void BlitzCallback::Run(void *pvParam) { void BlitzCallback::Run(void *pvParam) {
if (m_hSteamAPICall != 0) if (m_hSteamAPICall != 0)
m_hSteamAPICall = 0; // Caller unregisters for us. m_hSteamAPICall = 0; // Caller unregisters for us.
BP_CallFunction3(m_pFunctionPointer, reinterpret_cast<int32_t>(pvParam), 0, 0); BP_CallFunction3(m_pFunctionPointer, reinterpret_cast<int32_t>(pvParam), 0, 0);
} }
void BlitzCallback::Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall) { void BlitzCallback::Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall) {
if (m_hSteamAPICall != 0) if (m_hSteamAPICall != 0)
m_hSteamAPICall = 0; // Caller unregisters for us. m_hSteamAPICall = 0; // Caller unregisters for us.
BP_CallFunction3(m_pFunctionPointer, reinterpret_cast<int32_t>(pvParam), (bIOFailure ? 0 : 1), reinterpret_cast<int32_t>(&hSteamAPICall)); BP_CallFunction3(m_pFunctionPointer, reinterpret_cast<int32_t>(pvParam), (bIOFailure ? 0 : 1), reinterpret_cast<int32_t>(&hSteamAPICall));
} }
int BlitzCallback::GetCallbackSizeBytes() { int BlitzCallback::GetCallbackSizeBytes() {
return (BlitzCallback::Sizes.find(this->m_iCallback)->second); return (BlitzCallback::Sizes.find(this->m_iCallback)->second);
} }
void BlitzCallback::SetCallback(int32_t iCallback) { void BlitzCallback::SetCallback(int32_t iCallback) {
this->m_iCallback = iCallback; this->m_iCallback = iCallback;
} }
int32_t BlitzCallback::GetCallback() { int32_t BlitzCallback::GetCallback() {
return this->m_iCallback; return this->m_iCallback;
} }
void BlitzCallback::SetFunction(BP_BlitzFunction3_t pFunction) { void BlitzCallback::SetFunction(BP_BlitzFunction3_t pFunction) {
this->m_pFunctionPointer = pFunction; this->m_pFunctionPointer = pFunction;
} }
BP_BlitzFunction3_t BlitzCallback::GetFunction() { BP_BlitzFunction3_t BlitzCallback::GetFunction() {
return this->m_pFunctionPointer; return this->m_pFunctionPointer;
} }
bool BlitzCallback::IsRegistered() { bool BlitzCallback::IsRegistered() {
return (this->m_nCallbackFlags & this->k_ECallbackFlagsRegistered) != 0; return (this->m_nCallbackFlags & this->k_ECallbackFlagsRegistered) != 0;
} }
void BlitzCallback::SetRegistered(bool bIsRegistered) { void BlitzCallback::SetRegistered(bool bIsRegistered) {
this->m_nCallbackFlags &= ~k_ECallbackFlagsRegistered; this->m_nCallbackFlags &= ~k_ECallbackFlagsRegistered;
if (bIsRegistered) if (bIsRegistered)
this->m_nCallbackFlags |= k_ECallbackFlagsRegistered; this->m_nCallbackFlags |= k_ECallbackFlagsRegistered;
} }
bool BlitzCallback::IsGameServer() { bool BlitzCallback::IsGameServer() {
return (this->m_nCallbackFlags & this->k_ECallbackFlagsGameServer) != 0; return (this->m_nCallbackFlags & this->k_ECallbackFlagsGameServer) != 0;
} }
void BlitzCallback::SetGameServer(bool bIsGameServer) { void BlitzCallback::SetGameServer(bool bIsGameServer) {
this->m_nCallbackFlags &= ~k_ECallbackFlagsGameServer; this->m_nCallbackFlags &= ~k_ECallbackFlagsGameServer;
if (bIsGameServer) if (bIsGameServer)
this->m_nCallbackFlags |= k_ECallbackFlagsGameServer; this->m_nCallbackFlags |= k_ECallbackFlagsGameServer;
} }
void BlitzCallback::Register(uint32_t iCallback) { void BlitzCallback::Register(uint32_t iCallback) {
if (this->IsRegistered()) if (this->IsRegistered())
this->Unregister(); this->Unregister();
SteamAPI_RegisterCallback(this, iCallback); SteamAPI_RegisterCallback(this, iCallback);
this->m_iCallback = iCallback; this->m_iCallback = iCallback;
} }
void BlitzCallback::Unregister() { void BlitzCallback::Unregister() {
if (this->IsRegistered()) { if (this->IsRegistered()) {
SteamAPI_UnregisterCallback(this); SteamAPI_UnregisterCallback(this);
this->m_iCallback = 0; this->m_iCallback = 0;
} }
} }
void BlitzCallback::RegisterResult(SteamAPICall_t hSteamAPICall, uint32_t iCallback) { void BlitzCallback::RegisterResult(SteamAPICall_t hSteamAPICall, uint32_t iCallback) {
if (this->m_hSteamAPICall != 0) if (this->m_hSteamAPICall != 0)
this->UnregisterResult(); this->UnregisterResult();
this->m_hSteamAPICall = hSteamAPICall; this->m_hSteamAPICall = hSteamAPICall;
this->m_iCallback = iCallback; this->m_iCallback = iCallback;
SteamAPI_RegisterCallResult(this, hSteamAPICall); SteamAPI_RegisterCallResult(this, hSteamAPICall);
} }
void BlitzCallback::UnregisterResult() { void BlitzCallback::UnregisterResult() {
if (this->m_hSteamAPICall != 0) { if (this->m_hSteamAPICall != 0) {
SteamAPI_UnregisterCallResult(this, this->m_hSteamAPICall); SteamAPI_UnregisterCallResult(this, this->m_hSteamAPICall);
this->m_hSteamAPICall = 0; this->m_hSteamAPICall = 0;
this->m_iCallback = 0; this->m_iCallback = 0;
} }
} }
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// C-Callables // C-Callables
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(BlitzCallback*) BS_Callback_New(BP_BlitzFunction3_t pFunctionPointer) { DLL(BlitzCallback*) BS_Callback_New(BP_BlitzFunction3_t pFunctionPointer) {
return new BlitzCallback(pFunctionPointer); return new BlitzCallback(pFunctionPointer);
} }
DLL(void) BS_Callback_Destroy(BlitzCallback* pCallback) { DLL(void) BS_Callback_Destroy(BlitzCallback* pCallback) {
delete pCallback; delete pCallback;
} }
DLL(int32_t) BS_Callback_GetCallbackSizeBytes(BlitzCallback* pCallback) { DLL(int32_t) BS_Callback_GetCallbackSizeBytes(BlitzCallback* pCallback) {
return pCallback->GetCallbackSizeBytes(); return pCallback->GetCallbackSizeBytes();
} }
DLL(void) BS_Callback_SetCallback(BlitzCallback* pCallback, int32_t iCallback) { DLL(void) BS_Callback_SetCallback(BlitzCallback* pCallback, int32_t iCallback) {
pCallback->SetCallback(iCallback); pCallback->SetCallback(iCallback);
} }
DLL(int32_t) BS_Callback_GetCallback(BlitzCallback* pCallback) { DLL(int32_t) BS_Callback_GetCallback(BlitzCallback* pCallback) {
return pCallback->GetCallback(); return pCallback->GetCallback();
} }
DLL(void) BS_Callback_SetFunction(BlitzCallback* pCallback, BP_BlitzFunction3_t pFunction) { DLL(void) BS_Callback_SetFunction(BlitzCallback* pCallback, BP_BlitzFunction3_t pFunction) {
pCallback->SetFunction(pFunction); pCallback->SetFunction(pFunction);
} }
DLL(BP_BlitzFunction3_t) BS_Callback_GetFunction(BlitzCallback* pCallback) { DLL(BP_BlitzFunction3_t) BS_Callback_GetFunction(BlitzCallback* pCallback) {
return pCallback->GetFunction(); return pCallback->GetFunction();
} }
DLL(int32_t) BS_Callback_IsRegistered(BlitzCallback* pCallback) { DLL(int32_t) BS_Callback_IsRegistered(BlitzCallback* pCallback) {
return pCallback->IsRegistered(); return pCallback->IsRegistered();
} }
DLL(void) BS_Callback_SetRegistered(BlitzCallback* pCallback, int32_t bIsRegistered) { DLL(void) BS_Callback_SetRegistered(BlitzCallback* pCallback, int32_t bIsRegistered) {
pCallback->SetRegistered(!!bIsRegistered); pCallback->SetRegistered(!!bIsRegistered);
} }
DLL(int32_t) BS_Callback_IsGameServer(BlitzCallback* pCallback) { DLL(int32_t) BS_Callback_IsGameServer(BlitzCallback* pCallback) {
return pCallback->IsGameServer(); return pCallback->IsGameServer();
} }
DLL(void) BS_Callback_SetGameServer(BlitzCallback* pCallback, int32_t bIsGameServer) { DLL(void) BS_Callback_SetGameServer(BlitzCallback* pCallback, int32_t bIsGameServer) {
pCallback->SetGameServer(!!bIsGameServer); pCallback->SetGameServer(!!bIsGameServer);
} }
DLL(void) BS_Callback_Register(BlitzCallback* pCallback, uint32_t iCallback) { DLL(void) BS_Callback_Register(BlitzCallback* pCallback, uint32_t iCallback) {
pCallback->Register(iCallback); pCallback->Register(iCallback);
} }
DLL(void) BS_Callback_Unregister(BlitzCallback* pCallback) { DLL(void) BS_Callback_Unregister(BlitzCallback* pCallback) {
pCallback->Unregister(); pCallback->Unregister();
} }
DLL(void) BS_Callback_RegisterResult(BlitzCallback* pCallback, SteamAPICall_t* pSteamAPICall, uint32_t iCallback) { DLL(void) BS_Callback_RegisterResult(BlitzCallback* pCallback, SteamAPICall_t* pSteamAPICall, uint32_t iCallback) {
pCallback->RegisterResult(*pSteamAPICall, iCallback); pCallback->RegisterResult(*pSteamAPICall, iCallback);
} }
DLL(void) BS_Callback_UnregisterResult(BlitzCallback* pCallback) { DLL(void) BS_Callback_UnregisterResult(BlitzCallback* pCallback) {
pCallback->UnregisterResult(); pCallback->UnregisterResult();
} }
+95 -95
View File
@@ -1,96 +1,96 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
#include "../Helpers/BlitzPointer.h" #include "../Helpers/BlitzPointer.h"
#include <list> #include <list>
#include <vector> #include <vector>
#include <map> #include <map>
class BlitzCallback : public CCallbackBase { class BlitzCallback : public CCallbackBase {
// Static Parts // Static Parts
public: public:
/// Initializes the CallbackSizes list for future use. /// Initializes the CallbackSizes list for future use.
static void Initialize(); static void Initialize();
static std::map<int32_t, size_t> Sizes; static std::map<int32_t, size_t> Sizes;
// Class Parts // Class Parts
public: public:
// Constructor // Constructor
BlitzCallback(BP_BlitzFunction3_t pFunctionPointer); BlitzCallback(BP_BlitzFunction3_t pFunctionPointer);
// Destructor // Destructor
~BlitzCallback(); ~BlitzCallback();
// Run // Run
virtual void Run(void *pvParam); virtual void Run(void *pvParam);
virtual void Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall); virtual void Run(void *pvParam, bool bIOFailure, SteamAPICall_t hSteamAPICall);
// Callback Size // Callback Size
virtual int GetCallbackSizeBytes(); virtual int GetCallbackSizeBytes();
// Accessors // Accessors
void SetCallback(int32_t iCallback); void SetCallback(int32_t iCallback);
int32_t GetCallback(); int32_t GetCallback();
void SetFunction(BP_BlitzFunction3_t pFunction); void SetFunction(BP_BlitzFunction3_t pFunction);
BP_BlitzFunction3_t GetFunction(); BP_BlitzFunction3_t GetFunction();
bool IsRegistered(); bool IsRegistered();
void SetRegistered(bool bIsRegistered); void SetRegistered(bool bIsRegistered);
bool IsGameServer(); bool IsGameServer();
void SetGameServer(bool bIsGameServer); void SetGameServer(bool bIsGameServer);
// Registration in Steam // Registration in Steam
/// Register as Callback /// Register as Callback
void Register(uint32_t iCallback); void Register(uint32_t iCallback);
void Unregister(); void Unregister();
/// Register as CallResult /// Register as CallResult
void RegisterResult(SteamAPICall_t hSteamAPICall, uint32_t iCallback); void RegisterResult(SteamAPICall_t hSteamAPICall, uint32_t iCallback);
void UnregisterResult(); void UnregisterResult();
private: private:
/// Function to Call /// Function to Call
BP_BlitzFunction3_t m_pFunctionPointer; BP_BlitzFunction3_t m_pFunctionPointer;
/// Assigned SteamAPICall /// Assigned SteamAPICall
SteamAPICall_t m_hSteamAPICall; SteamAPICall_t m_hSteamAPICall;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// C-Callables // C-Callables
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(BlitzCallback*) BS_Callback_New(BP_BlitzFunction3_t pFunctionPointer); DLL(BlitzCallback*) BS_Callback_New(BP_BlitzFunction3_t pFunctionPointer);
DLL(void) BS_Callback_Destroy(BlitzCallback* pCallback); DLL(void) BS_Callback_Destroy(BlitzCallback* pCallback);
DLL(int32_t) BS_Callback_GetCallbackSizeBytes(BlitzCallback* pCallback); DLL(int32_t) BS_Callback_GetCallbackSizeBytes(BlitzCallback* pCallback);
DLL(void) BS_Callback_SetCallback(BlitzCallback* pCallback, int32_t iCallback); DLL(void) BS_Callback_SetCallback(BlitzCallback* pCallback, int32_t iCallback);
DLL(int32_t) BS_Callback_GetCallback(BlitzCallback* pCallback); DLL(int32_t) BS_Callback_GetCallback(BlitzCallback* pCallback);
DLL(void) BS_Callback_SetFunction(BlitzCallback* pCallback, BP_BlitzFunction3_t pFunction); DLL(void) BS_Callback_SetFunction(BlitzCallback* pCallback, BP_BlitzFunction3_t pFunction);
DLL(BP_BlitzFunction3_t) BS_Callback_GetFunction(BlitzCallback* pCallback); DLL(BP_BlitzFunction3_t) BS_Callback_GetFunction(BlitzCallback* pCallback);
DLL(void) BS_Callback_SetRegistered(BlitzCallback* pCallback, int32_t bIsRegistered); DLL(void) BS_Callback_SetRegistered(BlitzCallback* pCallback, int32_t bIsRegistered);
DLL(int32_t) BS_Callback_IsRegistered(BlitzCallback* pCallback); DLL(int32_t) BS_Callback_IsRegistered(BlitzCallback* pCallback);
DLL(void) BS_Callback_SetGameServer(BlitzCallback* pCallback, int32_t bIsGameServer); DLL(void) BS_Callback_SetGameServer(BlitzCallback* pCallback, int32_t bIsGameServer);
DLL(int32_t) BS_Callback_IsGameServer(BlitzCallback* pCallback); DLL(int32_t) BS_Callback_IsGameServer(BlitzCallback* pCallback);
DLL(void) BS_Callback_Register(BlitzCallback* pCallback, uint32_t iCallback); DLL(void) BS_Callback_Register(BlitzCallback* pCallback, uint32_t iCallback);
DLL(void) BS_Callback_Unregister(BlitzCallback* pCallback); DLL(void) BS_Callback_Unregister(BlitzCallback* pCallback);
DLL(void) BS_Callback_RegisterResult(BlitzCallback* pCallback, SteamAPICall_t* pSteamAPICall, uint32_t iCallback); DLL(void) BS_Callback_RegisterResult(BlitzCallback* pCallback, SteamAPICall_t* pSteamAPICall, uint32_t iCallback);
DLL(void) BS_Callback_UnregisterResult(BlitzCallback* pCallback); DLL(void) BS_Callback_UnregisterResult(BlitzCallback* pCallback);
+171 -168
View File
@@ -1,169 +1,172 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "CSteamID.h" #include "CSteamID.h"
DLL(CSteamID*) BS_CSteamID_New() { DLL(CSteamID*) BS_CSteamID_New() {
return new CSteamID(); return new CSteamID();
} }
DLL(CSteamID*) BS_CSteamID_Copy(CSteamID* pOther) { DLL(CSteamID*) BS_CSteamID_Copy(CSteamID* pOther) {
return new CSteamID(*pOther); return new CSteamID(*pOther);
} }
DLL(void) BS_CSteamID_Destroy(CSteamID* pThis) { DLL(void) BS_CSteamID_Destroy(CSteamID* pThis) {
delete pThis; delete pThis;
} }
DLL(CSteamID*) BS_CSteamID_New_IdUniverseType(AccountID_t iAccountId, EUniverse eUniverse, EAccountType eAccountType) { DLL(CSteamID*) BS_CSteamID_New_IdUniverseType(AccountID_t iAccountId, EUniverse eUniverse, EAccountType eAccountType) {
return new CSteamID(iAccountId, eUniverse, eAccountType); return new CSteamID(iAccountId, eUniverse, eAccountType);
} }
DLL(CSteamID*) BS_CSteamID_New_IdInstanceUniverseType(AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType) { DLL(CSteamID*) BS_CSteamID_New_IdInstanceUniverseType(AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType) {
return new CSteamID(iAccountId, iInstance, eUniverse, eAccountType); return new CSteamID(iAccountId, iInstance, eUniverse, eAccountType);
} }
DLL(CSteamID*) BS_CSteamID_FromL(int64_t* pOther) { DLL(CSteamID*) BS_CSteamID_FromL(int64_t* pOther) {
return new CSteamID((uint64_t)*pOther); return new CSteamID((uint64_t)*pOther);
} }
DLL(int64_t*) BS_CSteamID_ToL(CSteamID* pThis) { DLL(int64_t*) BS_CSteamID_ToL(CSteamID* pThis) {
return new int64_t(pThis->ConvertToUint64()); return new int64_t(pThis->ConvertToUint64());
} }
DLL(void) BS_CSteamID_Set(CSteamID* pThis, AccountID_t iAccountID, EUniverse eUniverse, EAccountType eAccountType) { DLL(void) BS_CSteamID_Set(CSteamID* pThis, AccountID_t iAccountID, EUniverse eUniverse, EAccountType eAccountType) {
pThis->Set(iAccountID, eUniverse, eAccountType); pThis->Set(iAccountID, eUniverse, eAccountType);
} }
DLL(void) BS_CSteamID_InstancedSet(CSteamID* pThis, AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType) { DLL(void) BS_CSteamID_InstancedSet(CSteamID* pThis, AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType) {
pThis->InstancedSet(iAccountId, iInstance, eUniverse, eAccountType); pThis->InstancedSet(iAccountId, iInstance, eUniverse, eAccountType);
} }
DLL(void) BS_CSteamID_FullSet(CSteamID* pThis, int64_t* plIdentifier, EUniverse eUniverse, EAccountType eAccountType) { DLL(void) BS_CSteamID_FullSet(CSteamID* pThis, int64_t* plIdentifier, EUniverse eUniverse, EAccountType eAccountType) {
pThis->FullSet(*plIdentifier, eUniverse, eAccountType); pThis->FullSet(*plIdentifier, eUniverse, eAccountType);
} }
DLL(void) BS_CSteamID_SetFromLong(CSteamID* pThis, int64_t* plSteamID) { DLL(void) BS_CSteamID_SetFromLong(CSteamID* pThis, int64_t* plSteamID) {
pThis->SetFromUint64(*plSteamID); pThis->SetFromUint64(*plSteamID);
} }
DLL(void) BS_CSteamID_Clear(CSteamID* pThis) { DLL(void) BS_CSteamID_Clear(CSteamID* pThis) {
pThis->Clear(); pThis->Clear();
} }
DLL(int64_t*) BS_CSteamID_GetStaticAccountKey(CSteamID* pThis) { DLL(int64_t*) BS_CSteamID_GetStaticAccountKey(CSteamID* pThis) {
return new int64_t(pThis->GetStaticAccountKey()); return new int64_t(pThis->GetStaticAccountKey());
} }
DLL(void) BS_CSteamID_CreateBlankAnonLogon(CSteamID* pThis, EUniverse eUniverse) { DLL(void) BS_CSteamID_CreateBlankAnonLogon(CSteamID* pThis, EUniverse eUniverse) {
pThis->CreateBlankAnonLogon(eUniverse); pThis->CreateBlankAnonLogon(eUniverse);
} }
DLL(void) BS_CSteamID_CreateBlankAnonUserLogon(CSteamID* pThis, EUniverse eUniverse) { DLL(void) BS_CSteamID_CreateBlankAnonUserLogon(CSteamID* pThis, EUniverse eUniverse) {
pThis->CreateBlankAnonUserLogon(eUniverse); pThis->CreateBlankAnonUserLogon(eUniverse);
} }
DLL(int32_t) BS_CSteamID_IsBlankAnonAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsBlankAnonAccount(CSteamID* pThis) {
return pThis->BBlankAnonAccount(); return pThis->BBlankAnonAccount();
} }
DLL(int32_t) BS_CSteamID_IsGameServerAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsGameServerAccount(CSteamID* pThis) {
return pThis->BGameServerAccount(); return pThis->BGameServerAccount();
} }
DLL(int32_t) BS_CSteamID_IsPersistentGameServerAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsPersistentGameServerAccount(CSteamID* pThis) {
return pThis->BPersistentGameServerAccount(); return pThis->BPersistentGameServerAccount();
} }
DLL(int32_t) BS_CSteamID_IsAnonGameServerAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsAnonGameServerAccount(CSteamID* pThis) {
return pThis->BAnonGameServerAccount(); return pThis->BAnonGameServerAccount();
} }
DLL(int32_t) BS_CSteamID_IsContentServerAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsContentServerAccount(CSteamID* pThis) {
return pThis->BContentServerAccount(); return pThis->BContentServerAccount();
} }
DLL(int32_t) BS_CSteamID_IsClanAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsClanAccount(CSteamID* pThis) {
return pThis->BClanAccount(); return pThis->BClanAccount();
} }
DLL(int32_t) BS_CSteamID_IsChatAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsChatAccount(CSteamID* pThis) {
return pThis->BChatAccount(); return pThis->BChatAccount();
} }
DLL(int32_t) BS_CSteamID_IsLobby(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsLobby(CSteamID* pThis) {
return pThis->IsLobby(); return pThis->IsLobby();
} }
DLL(int32_t) BS_CSteamID_IsIndividualAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsIndividualAccount(CSteamID* pThis) {
return pThis->BIndividualAccount(); return pThis->BIndividualAccount();
} }
DLL(int32_t) BS_CSteamID_IsAnonAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsAnonAccount(CSteamID* pThis) {
return pThis->BAnonAccount(); return pThis->BAnonAccount();
} }
DLL(int32_t) BS_CSteamID_IsAnonUserAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsAnonUserAccount(CSteamID* pThis) {
return pThis->BAnonUserAccount(); return pThis->BAnonUserAccount();
} }
DLL(int32_t) BS_CSteamID_IsConsoleUserAccount(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_IsConsoleUserAccount(CSteamID* pThis) {
return pThis->BConsoleUserAccount(); return pThis->BConsoleUserAccount();
} }
DLL(void) BS_CSteamID_SetAccountID(CSteamID* pThis, AccountID_t iAccountId) { DLL(void) BS_CSteamID_SetAccountID(CSteamID* pThis, AccountID_t iAccountId) {
pThis->SetAccountID(iAccountId); pThis->SetAccountID(iAccountId);
} }
DLL(AccountID_t) BS_CSteamID_GetAccountID(CSteamID* pThis) { DLL(AccountID_t) BS_CSteamID_GetAccountID(CSteamID* pThis) {
return pThis->GetAccountID(); return pThis->GetAccountID();
} }
DLL(void) BS_CSteamID_SetAccountInstance(CSteamID* pThis, uint32_t iInstance) { DLL(void) BS_CSteamID_SetAccountInstance(CSteamID* pThis, uint32_t iInstance) {
pThis->SetAccountInstance(iInstance); pThis->SetAccountInstance(iInstance);
} }
DLL(void) BS_CSteamID_ClearIndividualInstance(CSteamID* pThis) { DLL(void) BS_CSteamID_ClearIndividualInstance(CSteamID* pThis) {
pThis->ClearIndividualInstance(); pThis->ClearIndividualInstance();
} }
DLL(int32_t) BS_CSteamID_HasNoIndividualInstance(CSteamID* pThis) { DLL(int32_t) BS_CSteamID_HasNoIndividualInstance(CSteamID* pThis) {
return pThis->HasNoIndividualInstance(); return pThis->HasNoIndividualInstance();
} }
DLL(uint32_t) BS_CSteamID_GetAccountInstance(CSteamID* pThis) { DLL(uint32_t) BS_CSteamID_GetAccountInstance(CSteamID* pThis) {
return pThis->GetUnAccountInstance(); return pThis->GetUnAccountInstance();
} }
DLL(EAccountType) BS_CSteamID_GetEAccountType(CSteamID* pThis) { DLL(EAccountType) BS_CSteamID_GetEAccountType(CSteamID* pThis) {
return pThis->GetEAccountType(); return pThis->GetEAccountType();
} }
DLL(void) BS_CSteamID_SetEUniverse(CSteamID* pThis, EUniverse eUniverse) { DLL(void) BS_CSteamID_SetEUniverse(CSteamID* pThis, EUniverse eUniverse) {
pThis->SetEUniverse(eUniverse); pThis->SetEUniverse(eUniverse);
} }
DLL(EUniverse) BS_CSteamID_GetEUniverse(CSteamID* pThis) { DLL(EUniverse) BS_CSteamID_GetEUniverse(CSteamID* pThis) {
return pThis->GetEUniverse(); return pThis->GetEUniverse();
} }
DLL(int32_t) BS_CSteamID_Compare(CSteamID* pThis, CSteamID* pOther) { DLL(int32_t) BS_CSteamID_Compare(CSteamID* pThis, CSteamID* pOther) {
return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */ if ((pThis == nullptr) || (pOther == nullptr))
/* Greater */ return -1;
(*pThis > *pOther ? 1 : 0) +
/* Smaller */ return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */
(*pThis < *pOther ? -1 : 0); /* Greater */
(*pThis > *pOther ? 1 : 0) +
/* Smaller */
(*pThis < *pOther ? -1 : 0);
} }
+178 -178
View File
@@ -1,179 +1,179 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Constructor // Purpose: Constructor
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(CSteamID*) BS_CSteamID_New(); DLL(CSteamID*) BS_CSteamID_New();
DLL(CSteamID*) BS_CSteamID_Copy(CSteamID* pOther); DLL(CSteamID*) BS_CSteamID_Copy(CSteamID* pOther);
DLL(void) BS_CSteamID_Destroy(CSteamID* pThis); DLL(void) BS_CSteamID_Destroy(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Constructor // Purpose: Constructor
// Input : unAccountID - 32-bit account ID // Input : unAccountID - 32-bit account ID
// eUniverse - Universe this account belongs to // eUniverse - Universe this account belongs to
// eAccountType - Type of account // eAccountType - Type of account
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(CSteamID*) BS_CSteamID_New_IdUniverseType(AccountID_t iAccountId, EUniverse eUniverse, EAccountType eAccountType); DLL(CSteamID*) BS_CSteamID_New_IdUniverseType(AccountID_t iAccountId, EUniverse eUniverse, EAccountType eAccountType);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Constructor // Purpose: Constructor
// Input : unAccountID - 32-bit account ID // Input : unAccountID - 32-bit account ID
// unAccountInstance - instance // unAccountInstance - instance
// eUniverse - Universe this account belongs to // eUniverse - Universe this account belongs to
// eAccountType - Type of account // eAccountType - Type of account
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(CSteamID*) BS_CSteamID_New_IdInstanceUniverseType(AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType); DLL(CSteamID*) BS_CSteamID_New_IdInstanceUniverseType(AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Constructor // Purpose: Constructor
// Input : ulSteamID - 64-bit representation of a Steam ID // Input : ulSteamID - 64-bit representation of a Steam ID
// Note: Will not accept a uint32 or int32 as input, as that is a probable mistake. // Note: Will not accept a uint32 or int32 as input, as that is a probable mistake.
// See the stubbed out overloads in the private: section for more info. // See the stubbed out overloads in the private: section for more info.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(CSteamID*) BS_CSteamID_FromL(int64_t* pOther); DLL(CSteamID*) BS_CSteamID_FromL(int64_t* pOther);
DLL(int64_t*) BS_CSteamID_ToL(CSteamID* pThis); DLL(int64_t*) BS_CSteamID_ToL(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Sets parameters for steam ID // Purpose: Sets parameters for steam ID
// Input : unAccountID - 32-bit account ID // Input : unAccountID - 32-bit account ID
// eUniverse - Universe this account belongs to // eUniverse - Universe this account belongs to
// eAccountType - Type of account // eAccountType - Type of account
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_Set(CSteamID* pThis, AccountID_t iAccountID, EUniverse eUniverse, EAccountType eAccountType); DLL(void) BS_CSteamID_Set(CSteamID* pThis, AccountID_t iAccountID, EUniverse eUniverse, EAccountType eAccountType);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Sets parameters for steam ID // Purpose: Sets parameters for steam ID
// Input : unAccountID - 32-bit account ID // Input : unAccountID - 32-bit account ID
// eUniverse - Universe this account belongs to // eUniverse - Universe this account belongs to
// eAccountType - Type of account // eAccountType - Type of account
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_InstancedSet(CSteamID* pThis, AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType); DLL(void) BS_CSteamID_InstancedSet(CSteamID* pThis, AccountID_t iAccountId, uint32_t iInstance, EUniverse eUniverse, EAccountType eAccountType);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Initializes a steam ID from its 52 bit parts and universe/type // Purpose: Initializes a steam ID from its 52 bit parts and universe/type
// Input : ulIdentifier - 52 bits of goodness // Input : ulIdentifier - 52 bits of goodness
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_FullSet(CSteamID* pThis, int64_t* plIdentifier, EUniverse eUniverse, EAccountType eAccountType); DLL(void) BS_CSteamID_FullSet(CSteamID* pThis, int64_t* plIdentifier, EUniverse eUniverse, EAccountType eAccountType);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Initializes a steam ID from its 64-bit representation // Purpose: Initializes a steam ID from its 64-bit representation
// Input : ulSteamID - 64-bit representation of a Steam ID // Input : ulSteamID - 64-bit representation of a Steam ID
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_SetFromLong(CSteamID* pThis, int64_t* plSteamID); DLL(void) BS_CSteamID_SetFromLong(CSteamID* pThis, int64_t* plSteamID);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Clear all fields, leaving an invalid ID. // Purpose: Clear all fields, leaving an invalid ID.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_Clear(CSteamID* pThis); DLL(void) BS_CSteamID_Clear(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Converts the static parts of a steam ID to a 64-bit representation. // Purpose: Converts the static parts of a steam ID to a 64-bit representation.
// For multiseat accounts, all instances of that account will have the // For multiseat accounts, all instances of that account will have the
// same static account key, so they can be grouped together by the static // same static account key, so they can be grouped together by the static
// account key. // account key.
// Output : 64-bit static account key // Output : 64-bit static account key
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int64_t*) BS_CSteamID_GetStaticAccountKey(CSteamID* pThis); DLL(int64_t*) BS_CSteamID_GetStaticAccountKey(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: create an anonymous game server login to be filled in by the AM // Purpose: create an anonymous game server login to be filled in by the AM
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_CreateBlankAnonLogon(CSteamID* pThis, EUniverse eUniverse); DLL(void) BS_CSteamID_CreateBlankAnonLogon(CSteamID* pThis, EUniverse eUniverse);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: create an anonymous game server login to be filled in by the AM // Purpose: create an anonymous game server login to be filled in by the AM
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(void) BS_CSteamID_CreateBlankAnonUserLogon(CSteamID* pThis, EUniverse eUniverse); DLL(void) BS_CSteamID_CreateBlankAnonUserLogon(CSteamID* pThis, EUniverse eUniverse);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this an anonymous game server login that will be filled in? // Purpose: Is this an anonymous game server login that will be filled in?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsBlankAnonAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsBlankAnonAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a game server account id? (Either persistent or anonymous) // Purpose: Is this a game server account id? (Either persistent or anonymous)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsGameServerAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsGameServerAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a persistent (not anonymous) game server account id? // Purpose: Is this a persistent (not anonymous) game server account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsPersistentGameServerAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsPersistentGameServerAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this an anonymous game server account id? // Purpose: Is this an anonymous game server account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsAnonGameServerAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsAnonGameServerAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a content server account id? // Purpose: Is this a content server account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsContentServerAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsContentServerAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a clan account id? // Purpose: Is this a clan account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsClanAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsClanAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a chat account id? // Purpose: Is this a chat account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsChatAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsChatAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a Lobby? // Purpose: Is this a Lobby?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsLobby(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsLobby(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this an individual user account id? // Purpose: Is this an individual user account id?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsIndividualAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsIndividualAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this an anonymous account? // Purpose: Is this an anonymous account?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsAnonAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsAnonAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this an anonymous user account? ( used to create an account or reset a password ) // Purpose: Is this an anonymous user account? ( used to create an account or reset a password )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsAnonUserAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsAnonUserAccount(CSteamID* pThis);
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Is this a faked up Steam ID for a PSN friend account? // Purpose: Is this a faked up Steam ID for a PSN friend account?
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(int32_t) BS_CSteamID_IsConsoleUserAccount(CSteamID* pThis); DLL(int32_t) BS_CSteamID_IsConsoleUserAccount(CSteamID* pThis);
// simple accessors // simple accessors
DLL(void) BS_CSteamID_SetAccountID(CSteamID* pThis, AccountID_t iAccountId); DLL(void) BS_CSteamID_SetAccountID(CSteamID* pThis, AccountID_t iAccountId);
DLL(AccountID_t) BS_CSteamID_GetAccountID(CSteamID* pThis); DLL(AccountID_t) BS_CSteamID_GetAccountID(CSteamID* pThis);
DLL(void) BS_CSteamID_SetAccountInstance(CSteamID* pThis, uint32_t iInstance); DLL(void) BS_CSteamID_SetAccountInstance(CSteamID* pThis, uint32_t iInstance);
DLL(void) BS_CSteamID_ClearIndividualInstance(CSteamID* pThis); DLL(void) BS_CSteamID_ClearIndividualInstance(CSteamID* pThis);
DLL(int32_t) BS_CSteamID_HasNoIndividualInstance(CSteamID* pThis); DLL(int32_t) BS_CSteamID_HasNoIndividualInstance(CSteamID* pThis);
DLL(uint32_t) BS_CSteamID_GetAccountInstance(CSteamID* pThis); DLL(uint32_t) BS_CSteamID_GetAccountInstance(CSteamID* pThis);
DLL(EAccountType) BS_CSteamID_GetEAccountType(CSteamID* pThis); DLL(EAccountType) BS_CSteamID_GetEAccountType(CSteamID* pThis);
DLL(void) BS_CSteamID_SetEUniverse(CSteamID* pThis, EUniverse eUniverse); DLL(void) BS_CSteamID_SetEUniverse(CSteamID* pThis, EUniverse eUniverse);
DLL(EUniverse) BS_CSteamID_GetEUniverse(CSteamID* pThis); DLL(EUniverse) BS_CSteamID_GetEUniverse(CSteamID* pThis);
DLL(int32_t) BS_CSteamID_Compare(CSteamID* pThis, CSteamID* pOther); DLL(int32_t) BS_CSteamID_Compare(CSteamID* pThis, CSteamID* pOther);
+124 -121
View File
@@ -1,122 +1,125 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "Long.h" #include "Long.h"
DLL(double_t*) BS_Double_New() { DLL(double_t*) BS_Double_New() {
return new double_t; return new double_t;
} }
DLL(double_t*) BS_Double_Copy(double_t* pOther) { DLL(double_t*) BS_Double_Copy(double_t* pOther) {
return new double_t(*pOther); return new double_t(*pOther);
} }
DLL(void) BS_Double_Destroy(double_t* pThis) { DLL(void) BS_Double_Destroy(double_t* pThis) {
delete pThis; delete pThis;
} }
char* BS_Double_Buffer = new char[32]; char* BS_Double_Buffer = new char[32];
DLL(const char*) BS_Double_ToString(double_t* pThis) { DLL(const char*) BS_Double_ToString(double_t* pThis) {
std::stringstream myStream; std::stringstream myStream;
myStream << (*pThis); myStream << (*pThis);
const char* myBuffer = myStream.str().c_str(); const char* myBuffer = myStream.str().c_str();
strcpy_s(BS_Double_Buffer, 32, myBuffer); strcpy_s(BS_Double_Buffer, 32, myBuffer);
return BS_Double_Buffer; return BS_Double_Buffer;
} }
DLL(double_t*) BS_Double_FromString(const char* pString) { DLL(double_t*) BS_Double_FromString(const char* pString) {
double_t* pThis = new double_t; double_t* pThis = new double_t;
std::stringstream myStream = std::stringstream(pString); std::stringstream myStream = std::stringstream(pString);
myStream >> *pThis; myStream >> *pThis;
return pThis; return pThis;
} }
DLL(double_t*) BS_Double_FromF(float_t fOther) { DLL(double_t*) BS_Double_FromF(float_t fOther) {
return new double_t(fOther); return new double_t(fOther);
} }
DLL(float_t) BS_Double_ToF(double_t* pThis) { DLL(float_t) BS_Double_ToF(double_t* pThis) {
return (float_t)*pThis; return (float_t)*pThis;
} }
DLL(double_t*) BS_Double_FromI(int32_t iOther) { DLL(double_t*) BS_Double_FromI(int32_t iOther) {
return new double_t(iOther); return new double_t(iOther);
} }
DLL(int32_t) BS_Double_ToI(double_t* pThis) { DLL(int32_t) BS_Double_ToI(double_t* pThis) {
return (int32_t)*pThis; return (int32_t)*pThis;
} }
DLL(double_t*) BS_Double_FromL(int64_t* pOther) { DLL(double_t*) BS_Double_FromL(int64_t* pOther) {
return new double_t((double_t)*pOther); return new double_t((double_t)*pOther);
} }
DLL(int64_t*) BS_Double_ToL(double_t* pThis) { DLL(int64_t*) BS_Double_ToL(double_t* pThis) {
return new int64_t((int64_t)*pThis); return new int64_t((int64_t)*pThis);
} }
DLL(int32_t) BS_Double_Compare(double_t* pThis, double_t* pOther) { DLL(int32_t) BS_Double_Compare(double_t* pThis, double_t* pOther) {
return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */ if ((pThis == nullptr) || (pOther == nullptr))
/* Greater */ return -1;
(*pThis > *pOther ? 1 : 0) +
/* Smaller */ return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */
(*pThis < *pOther ? -1 : 0); /* Greater */
} (*pThis > *pOther ? 1 : 0) +
/* Smaller */
DLL(double_t*) BS_Double_Set(double_t* pThis, double_t* pOther) { (*pThis < *pOther ? -1 : 0);
*pThis = *pOther; }
return pThis;
} DLL(double_t*) BS_Double_Set(double_t* pThis, double_t* pOther) {
DLL(double_t*) BS_Double_Add(double_t* pThis, double_t* pOther) { *pThis = *pOther;
*pThis += *pOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_Add(double_t* pThis, double_t* pOther) {
DLL(double_t*) BS_Double_Sub(double_t* pThis, double_t* pOther) { *pThis += *pOther;
*pThis -= *pOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_Sub(double_t* pThis, double_t* pOther) {
DLL(double_t*) BS_Double_Div(double_t* pThis, double_t* pOther) { *pThis -= *pOther;
*pThis /= *pOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_Div(double_t* pThis, double_t* pOther) {
DLL(double_t*) BS_Double_Mul(double_t* pThis, double_t* pOther) { *pThis /= *pOther;
*pThis *= *pOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_Mul(double_t* pThis, double_t* pOther) {
DLL(double_t*) BS_Double_Mod(double_t* pThis, double_t* pOther) { *pThis *= *pOther;
*pThis = fmod(*pThis, *pOther); return pThis;
return pThis; }
} DLL(double_t*) BS_Double_Mod(double_t* pThis, double_t* pOther) {
*pThis = fmod(*pThis, *pOther);
DLL(double_t*) BS_Double_SetF(double_t* pThis, float_t fOther) { return pThis;
*pThis = fOther; }
return pThis;
} DLL(double_t*) BS_Double_SetF(double_t* pThis, float_t fOther) {
DLL(double_t*) BS_Double_AddF(double_t* pThis, float_t fOther) { *pThis = fOther;
*pThis += fOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_AddF(double_t* pThis, float_t fOther) {
DLL(double_t*) BS_Double_SubF(double_t* pThis, float_t fOther) { *pThis += fOther;
*pThis -= fOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_SubF(double_t* pThis, float_t fOther) {
DLL(double_t*) BS_Double_DivF(double_t* pThis, float_t fOther) { *pThis -= fOther;
*pThis /= fOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_DivF(double_t* pThis, float_t fOther) {
DLL(double_t*) BS_Double_MulF(double_t* pThis, float_t fOther) { *pThis /= fOther;
*pThis *= fOther; return pThis;
return pThis; }
} DLL(double_t*) BS_Double_MulF(double_t* pThis, float_t fOther) {
DLL(double_t*) BS_Double_ModF(double_t* pThis, float_t fOther) { *pThis *= fOther;
*pThis = fmod(*pThis, fOther); return pThis;
return pThis; }
DLL(double_t*) BS_Double_ModF(double_t* pThis, float_t fOther) {
*pThis = fmod(*pThis, fOther);
return pThis;
} }
+51 -51
View File
@@ -1,51 +1,51 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
#include <sstream> #include <sstream>
DLL(double_t*) BS_Double_New(); DLL(double_t*) BS_Double_New();
DLL(double_t*) BS_Double_Copy(double_t* pRight); DLL(double_t*) BS_Double_Copy(double_t* pRight);
DLL(void) BS_Double_Destroy(double_t* pThis); DLL(void) BS_Double_Destroy(double_t* pThis);
DLL(const char*) BS_Double_ToString(double_t* pThis); DLL(const char*) BS_Double_ToString(double_t* pThis);
DLL(double_t*) BS_Double_FromString(const char* pString); DLL(double_t*) BS_Double_FromString(const char* pString);
DLL(double_t*) BS_Double_FromF(float_t fOther); DLL(double_t*) BS_Double_FromF(float_t fOther);
DLL(float_t) BS_Double_ToF(double_t* pThis); DLL(float_t) BS_Double_ToF(double_t* pThis);
DLL(double_t*) BS_Double_FromI(int32_t iOther); DLL(double_t*) BS_Double_FromI(int32_t iOther);
DLL(int32_t) BS_Double_ToI(double_t* pThis); DLL(int32_t) BS_Double_ToI(double_t* pThis);
DLL(double_t*) BS_Double_FromL(int64_t* pOther); DLL(double_t*) BS_Double_FromL(int64_t* pOther);
DLL(int64_t*) BS_Double_ToL(double_t* pThis); DLL(int64_t*) BS_Double_ToL(double_t* pThis);
DLL(int32_t) BS_Double_Compare(double_t* pThis, double_t* pOther); DLL(int32_t) BS_Double_Compare(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Set(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Set(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Add(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Add(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Sub(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Sub(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Div(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Div(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Mul(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Mul(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_Mod(double_t* pThis, double_t* pOther); DLL(double_t*) BS_Double_Mod(double_t* pThis, double_t* pOther);
DLL(double_t*) BS_Double_SetF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_SetF(double_t* pThis, float_t fOther);
DLL(double_t*) BS_Double_AddF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_AddF(double_t* pThis, float_t fOther);
DLL(double_t*) BS_Double_SubF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_SubF(double_t* pThis, float_t fOther);
DLL(double_t*) BS_Double_DivF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_DivF(double_t* pThis, float_t fOther);
DLL(double_t*) BS_Double_MulF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_MulF(double_t* pThis, float_t fOther);
DLL(double_t*) BS_Double_ModF(double_t* pThis, float_t fOther); DLL(double_t*) BS_Double_ModF(double_t* pThis, float_t fOther);
+169 -166
View File
@@ -1,167 +1,170 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "Long.h" #include "Long.h"
DLL(int64_t*) BS_Long_New() { DLL(int64_t*) BS_Long_New() {
return new int64_t; return new int64_t;
} }
DLL(int64_t*) BS_Long_Copy(int64_t* pOther) { DLL(int64_t*) BS_Long_Copy(int64_t* pOther) {
return new int64_t(*pOther); return new int64_t(*pOther);
} }
DLL(void) BS_Long_Destroy(int64_t* pThis) { DLL(void) BS_Long_Destroy(int64_t* pThis) {
delete pThis; delete pThis;
} }
char* BS_Long_Buffer = new char[32]; char* BS_Long_Buffer = new char[32];
DLL(const char*) BS_Long_ToString(int64_t* pThis) { DLL(const char*) BS_Long_ToString(int64_t* pThis) {
std::stringstream myStream; std::stringstream myStream;
myStream << (*pThis); myStream << (*pThis);
const char* myBuffer = myStream.str().c_str(); const char* myBuffer = myStream.str().c_str();
strcpy_s(BS_Long_Buffer, 32, myBuffer); strcpy_s(BS_Long_Buffer, 32, myBuffer);
return BS_Long_Buffer; return BS_Long_Buffer;
} }
DLL(int64_t*) BS_Long_FromString(const char* pString) { DLL(int64_t*) BS_Long_FromString(const char* pString) {
int64_t* pThis = new int64_t; int64_t* pThis = new int64_t;
std::stringstream myStream = std::stringstream(pString); std::stringstream myStream = std::stringstream(pString);
myStream >> *pThis; myStream >> *pThis;
return pThis; return pThis;
} }
DLL(int64_t*) BS_Long_FromI(int32_t iRight) { DLL(int64_t*) BS_Long_FromI(int32_t iRight) {
return new int64_t(iRight); return new int64_t(iRight);
} }
DLL(int64_t*) BS_Long_FromII(int32_t iLeft, int32_t iRight) { DLL(int64_t*) BS_Long_FromII(int32_t iLeft, int32_t iRight) {
return new int64_t(((int64_t)(iLeft) << 32) + iRight); return new int64_t(((int64_t)(iLeft) << 32) + iRight);
} }
DLL(int32_t) BS_Long_ToI(int64_t* pThis, int32_t iShift) { DLL(int32_t) BS_Long_ToI(int64_t* pThis, int32_t iShift) {
if (iShift >= 0) if (iShift >= 0)
return (int32_t)(*pThis >> iShift); return (int32_t)(*pThis >> iShift);
else else
return (int32_t)(*pThis << -iShift); return (int32_t)(*pThis << -iShift);
} }
DLL(int32_t) BS_Long_ToIH(int64_t* pThis) { DLL(int32_t) BS_Long_ToIH(int64_t* pThis) {
return (int32_t)(*pThis >> 32); return (int32_t)(*pThis >> 32);
} }
DLL(int32_t) BS_Long_ToIL(int64_t* pThis) { DLL(int32_t) BS_Long_ToIL(int64_t* pThis) {
return (int32_t)*pThis; return (int32_t)*pThis;
} }
DLL(int64_t*) BS_Long_FromF(float_t fOther) { DLL(int64_t*) BS_Long_FromF(float_t fOther) {
return new int64_t((int64_t)fOther); return new int64_t((int64_t)fOther);
} }
DLL(float_t) BS_Long_ToF(int64_t* pThis) { DLL(float_t) BS_Long_ToF(int64_t* pThis) {
return (float_t)*pThis; return (float_t)*pThis;
} }
DLL(int64_t*) BS_Long_FromD(double_t* pOther) { DLL(int64_t*) BS_Long_FromD(double_t* pOther) {
return new int64_t((int64_t)*pOther); return new int64_t((int64_t)*pOther);
} }
DLL(double_t*) BS_Long_ToD(int64_t* pThis) { DLL(double_t*) BS_Long_ToD(int64_t* pThis) {
return new double_t((double_t)*pThis); return new double_t((double_t)*pThis);
} }
DLL(int32_t) BS_Long_Compare(int64_t* pThis, int64_t* pOther) { DLL(int32_t) BS_Long_Compare(int64_t* pThis, int64_t* pOther) {
return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */ if ((pThis == nullptr) || (pOther == nullptr))
/* Greater */ return -1;
(*pThis > *pOther ? 1 : 0) +
/* Smaller */ return /* It can either be Equal (0) or Smaller or Greater. Easy to check. */
(*pThis < *pOther ? -1 : 0); /* Greater */
} (*pThis > *pOther ? 1 : 0) +
/* Smaller */
DLL(int64_t*) BS_Long_Set(int64_t* pThis, int64_t* pOther) { (*pThis < *pOther ? -1 : 0);
*pThis = *pOther; }
return pThis;
} DLL(int64_t*) BS_Long_Set(int64_t* pThis, int64_t* pOther) {
DLL(int64_t*) BS_Long_Add(int64_t* pThis, int64_t* pOther) { *pThis = *pOther;
*pThis += *pOther; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_Add(int64_t* pThis, int64_t* pOther) {
DLL(int64_t*) BS_Long_Sub(int64_t* pThis, int64_t* pOther) { *pThis += *pOther;
*pThis -= *pOther; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_Sub(int64_t* pThis, int64_t* pOther) {
DLL(int64_t*) BS_Long_Div(int64_t* pThis, int64_t* pOther) { *pThis -= *pOther;
*pThis /= *pOther; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_Div(int64_t* pThis, int64_t* pOther) {
DLL(int64_t*) BS_Long_Mul(int64_t* pThis, int64_t* pOther) { *pThis /= *pOther;
*pThis *= *pOther; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_Mul(int64_t* pThis, int64_t* pOther) {
DLL(int64_t*) BS_Long_Mod(int64_t* pThis, int64_t* pOther) { *pThis *= *pOther;
*pThis %= *pOther; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_Mod(int64_t* pThis, int64_t* pOther) {
*pThis %= *pOther;
DLL(int64_t*) BS_Long_SetI(int64_t* pThis, int32_t iRight) { return pThis;
*pThis = iRight; }
return pThis;
} DLL(int64_t*) BS_Long_SetI(int64_t* pThis, int32_t iRight) {
DLL(int64_t*) BS_Long_AddI(int64_t* pThis, int32_t iRight) { *pThis = iRight;
*pThis += iRight; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_AddI(int64_t* pThis, int32_t iRight) {
DLL(int64_t*) BS_Long_SubI(int64_t* pThis, int32_t iRight) { *pThis += iRight;
*pThis -= iRight; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_SubI(int64_t* pThis, int32_t iRight) {
DLL(int64_t*) BS_Long_DivI(int64_t* pThis, int32_t iRight) { *pThis -= iRight;
*pThis /= iRight; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_DivI(int64_t* pThis, int32_t iRight) {
DLL(int64_t*) BS_Long_MulI(int64_t* pThis, int32_t iRight) { *pThis /= iRight;
*pThis *= iRight; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_MulI(int64_t* pThis, int32_t iRight) {
DLL(int64_t*) BS_Long_ModI(int64_t* pThis, int32_t iRight) { *pThis *= iRight;
*pThis %= iRight; return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_ModI(int64_t* pThis, int32_t iRight) {
*pThis %= iRight;
DLL(int64_t*) BS_Long_SetII(int64_t* pThis, int32_t iLeft, int32_t iRight) { return pThis;
*pThis = (((int64_t)iLeft << 32) + iRight); }
return pThis;
} DLL(int64_t*) BS_Long_SetII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
DLL(int64_t*) BS_Long_AddII(int64_t* pThis, int32_t iLeft, int32_t iRight) { *pThis = (((int64_t)iLeft << 32) + iRight);
*pThis += (((int64_t)iLeft << 32) + iRight); return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_AddII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
DLL(int64_t*) BS_Long_SubII(int64_t* pThis, int32_t iLeft, int32_t iRight) { *pThis += (((int64_t)iLeft << 32) + iRight);
*pThis -= (((int64_t)iLeft << 32) + iRight); return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_SubII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
DLL(int64_t*) BS_Long_DivII(int64_t* pThis, int32_t iLeft, int32_t iRight) { *pThis -= (((int64_t)iLeft << 32) + iRight);
*pThis /= (((int64_t)iLeft << 32) + iRight); return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_DivII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
DLL(int64_t*) BS_Long_MulII(int64_t* pThis, int32_t iLeft, int32_t iRight) { *pThis /= (((int64_t)iLeft << 32) + iRight);
*pThis *= (((int64_t)iLeft << 32) + iRight); return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_MulII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
DLL(int64_t*) BS_Long_ModII(int64_t* pThis, int32_t iLeft, int32_t iRight) { *pThis *= (((int64_t)iLeft << 32) + iRight);
*pThis %= (((int64_t)iLeft << 32) + iRight); return pThis;
return pThis; }
} DLL(int64_t*) BS_Long_ModII(int64_t* pThis, int32_t iLeft, int32_t iRight) {
*pThis %= (((int64_t)iLeft << 32) + iRight);
DLL(int64_t*) BS_Long_Shift(int64_t* pThis, int32_t iRight) { return pThis;
if (iRight >= 0) }
*pThis >>= iRight;
else DLL(int64_t*) BS_Long_Shift(int64_t* pThis, int32_t iRight) {
*pThis <<= -iRight; if (iRight >= 0)
return pThis; *pThis >>= iRight;
else
*pThis <<= -iRight;
return pThis;
} }
+62 -62
View File
@@ -1,63 +1,63 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
#include <sstream> #include <sstream>
DLL(int64_t*) BS_Long_New(); DLL(int64_t*) BS_Long_New();
DLL(int64_t*) BS_Long_Copy(int64_t* pRight); DLL(int64_t*) BS_Long_Copy(int64_t* pRight);
DLL(void) BS_Long_Destroy(int64_t* pThis); DLL(void) BS_Long_Destroy(int64_t* pThis);
DLL(const char*) BS_Long_ToString(int64_t* pThis); DLL(const char*) BS_Long_ToString(int64_t* pThis);
DLL(int64_t*) BS_Long_FromString(const char* pString); DLL(int64_t*) BS_Long_FromString(const char* pString);
DLL(int64_t*) BS_Long_FromI(int32_t iRight); DLL(int64_t*) BS_Long_FromI(int32_t iRight);
DLL(int64_t*) BS_Long_FromII(int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_FromII(int32_t iLeft, int32_t iRight);
DLL(int32_t) BS_Long_ToI(int64_t* pThis, int32_t iShift); DLL(int32_t) BS_Long_ToI(int64_t* pThis, int32_t iShift);
DLL(int32_t) BS_Long_ToIH(int64_t* pThis); DLL(int32_t) BS_Long_ToIH(int64_t* pThis);
DLL(int32_t) BS_Long_ToIL(int64_t* pThis); DLL(int32_t) BS_Long_ToIL(int64_t* pThis);
DLL(int64_t*) BS_Long_FromF(float_t fOther); DLL(int64_t*) BS_Long_FromF(float_t fOther);
DLL(float_t) BS_Long_ToF(int64_t* pThis); DLL(float_t) BS_Long_ToF(int64_t* pThis);
DLL(int64_t*) BS_Long_FromD(double_t* pOther); DLL(int64_t*) BS_Long_FromD(double_t* pOther);
DLL(double_t*) BS_Long_ToD(int64_t* pThis); DLL(double_t*) BS_Long_ToD(int64_t* pThis);
DLL(int32_t) BS_Long_Compare(int64_t* pThis, int64_t* pOther); DLL(int32_t) BS_Long_Compare(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Set(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Set(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Add(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Add(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Sub(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Sub(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Div(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Div(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Mul(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Mul(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_Mod(int64_t* pThis, int64_t* pOther); DLL(int64_t*) BS_Long_Mod(int64_t* pThis, int64_t* pOther);
DLL(int64_t*) BS_Long_SetI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_SetI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_AddI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_AddI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_SubI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_SubI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_DivI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_DivI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_MulI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_MulI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_ModI(int64_t* pThis, int32_t iRight); DLL(int64_t*) BS_Long_ModI(int64_t* pThis, int32_t iRight);
DLL(int64_t*) BS_Long_SetII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_SetII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_AddII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_AddII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_SubII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_SubII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_DivII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_DivII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_MulII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_MulII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_ModII(int64_t* pThis, int32_t iLeft, int32_t iRight); DLL(int64_t*) BS_Long_ModII(int64_t* pThis, int32_t iLeft, int32_t iRight);
DLL(int64_t*) BS_Long_Shift(int64_t* pThis, int32_t iShift); DLL(int64_t*) BS_Long_Shift(int64_t* pThis, int32_t iShift);
+77 -77
View File
@@ -1,77 +1,77 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "Memory.h" #include "Memory.h"
DLL(void*) BS_Memory_Alloc(uint32_t iSize) { DLL(void*) BS_Memory_Alloc(uint32_t iSize) {
return malloc(iSize); return malloc(iSize);
} }
DLL(void*) BS_Memory_ReAlloc(void* pMemory, uint32_t iNewSize) { DLL(void*) BS_Memory_ReAlloc(void* pMemory, uint32_t iNewSize) {
return realloc(pMemory, iNewSize); return realloc(pMemory, iNewSize);
} }
DLL(void) BS_Memory_Free(void* pMemory) { DLL(void) BS_Memory_Free(void* pMemory) {
free(pMemory); free(pMemory);
} }
DLL(void) BS_Memory_PokeByte(void* pMemory, uint32_t offset, int8_t value) { DLL(void) BS_Memory_PokeByte(void* pMemory, uint32_t offset, int8_t value) {
*((reinterpret_cast<uint8_t*>(pMemory) + offset)) = value; *((reinterpret_cast<uint8_t*>(pMemory) + offset)) = value;
} }
DLL(int32_t) BS_Memory_PeekByte(void* pMemory, uint32_t offset) { DLL(int32_t) BS_Memory_PeekByte(void* pMemory, uint32_t offset) {
return *(reinterpret_cast<uint8_t*>(pMemory) + offset); return *(reinterpret_cast<uint8_t*>(pMemory) + offset);
} }
DLL(void) BS_Memory_PokeShort(void* pMemory, uint32_t offset, int16_t value) { DLL(void) BS_Memory_PokeShort(void* pMemory, uint32_t offset, int16_t value) {
*(reinterpret_cast<int16_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value; *(reinterpret_cast<int16_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value;
} }
DLL(int32_t) BS_Memory_PeekShort(void* pMemory, uint32_t offset) { DLL(int32_t) BS_Memory_PeekShort(void* pMemory, uint32_t offset) {
return *(int16_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset); return *(int16_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset);
} }
DLL(void) BS_Memory_PokeInt(void* pMemory, uint32_t offset, int32_t value) { DLL(void) BS_Memory_PokeInt(void* pMemory, uint32_t offset, int32_t value) {
*(reinterpret_cast<uint32_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value; *(reinterpret_cast<uint32_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value;
} }
DLL(int32_t) BS_Memory_PeekInt(void* pMemory, uint32_t offset) { DLL(int32_t) BS_Memory_PeekInt(void* pMemory, uint32_t offset) {
return *(int32_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset); return *(int32_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset);
} }
DLL(void) BS_Memory_PokeFloat(void* pMemory, uint32_t offset, float_t value) { DLL(void) BS_Memory_PokeFloat(void* pMemory, uint32_t offset, float_t value) {
*(reinterpret_cast<float_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value; *(reinterpret_cast<float_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = value;
} }
DLL(float_t) BS_Memory_PeekFloat(void* pMemory, uint32_t offset) { DLL(float_t) BS_Memory_PeekFloat(void* pMemory, uint32_t offset) {
return *(float_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset); return *(float_t*)(reinterpret_cast<uint8_t*>(pMemory) + offset);
} }
DLL(void) BS_Memory_PokeLong(void* pMemory, uint32_t offset, int64_t* value) { DLL(void) BS_Memory_PokeLong(void* pMemory, uint32_t offset, int64_t* value) {
*(reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = *value; *(reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = *value;
} }
DLL(int64_t*) BS_Memory_PeekLong(void* pMemory, uint32_t offset) { DLL(int64_t*) BS_Memory_PeekLong(void* pMemory, uint32_t offset) {
return new int64_t(*(reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset))); return new int64_t(*(reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)));
} }
DLL(void) BS_Memory_PokeDouble(void* pMemory, uint32_t offset, double_t* value) { DLL(void) BS_Memory_PokeDouble(void* pMemory, uint32_t offset, double_t* value) {
*(reinterpret_cast<double_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = *value; *(reinterpret_cast<double_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)) = *value;
} }
DLL(double_t*) BS_Memory_PeekDouble(void* pMemory, uint32_t offset) { DLL(double_t*) BS_Memory_PeekDouble(void* pMemory, uint32_t offset) {
return new double_t(*(reinterpret_cast<double_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset))); return new double_t(*(reinterpret_cast<double_t*>(reinterpret_cast<uint8_t*>(pMemory) + offset)));
} }
+42 -42
View File
@@ -1,42 +1,42 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once #pragma once
#include "BlitzSteamInternal.h" #include "BlitzSteamInternal.h"
#include <stdlib.h> #include <stdlib.h>
DLL(void*) BS_Memory_Alloc(uint32_t iSize); DLL(void*) BS_Memory_Alloc(uint32_t iSize);
DLL(void*) BS_Memory_ReAlloc(void* pMemory, uint32_t iNewSize); DLL(void*) BS_Memory_ReAlloc(void* pMemory, uint32_t iNewSize);
DLL(void) BS_Memory_Free(void* pMemory); DLL(void) BS_Memory_Free(void* pMemory);
DLL(void) BS_Memory_PokeByte(void* pMemory, uint32_t offset, int8_t value); DLL(void) BS_Memory_PokeByte(void* pMemory, uint32_t offset, int8_t value);
DLL(int32_t) BS_Memory_PeekByte(void* pMemory, uint32_t offset); DLL(int32_t) BS_Memory_PeekByte(void* pMemory, uint32_t offset);
DLL(void) BS_Memory_PokeShort(void* pMemory, uint32_t offset, int16_t value); DLL(void) BS_Memory_PokeShort(void* pMemory, uint32_t offset, int16_t value);
DLL(int32_t) BS_Memory_PeekShort(void* pMemory, uint32_t offset); DLL(int32_t) BS_Memory_PeekShort(void* pMemory, uint32_t offset);
DLL(void) BS_Memory_PokeInt(void* pMemory, uint32_t offset, int32_t value); DLL(void) BS_Memory_PokeInt(void* pMemory, uint32_t offset, int32_t value);
DLL(int32_t) BS_Memory_PeekInt(void* pMemory, uint32_t offset); DLL(int32_t) BS_Memory_PeekInt(void* pMemory, uint32_t offset);
DLL(void) BS_Memory_PokeFloat(void* pMemory, uint32_t offset, float_t value); DLL(void) BS_Memory_PokeFloat(void* pMemory, uint32_t offset, float_t value);
DLL(float_t) BS_Memory_PeekFloat(void* pMemory, uint32_t offset); DLL(float_t) BS_Memory_PeekFloat(void* pMemory, uint32_t offset);
DLL(void) BS_Memory_PokeLong(void* pMemory, uint32_t offset, int64_t* value); DLL(void) BS_Memory_PokeLong(void* pMemory, uint32_t offset, int64_t* value);
DLL(int64_t*) BS_Memory_PeekLong(void* pMemory, uint32_t offset); DLL(int64_t*) BS_Memory_PeekLong(void* pMemory, uint32_t offset);
DLL(void) BS_Memory_PokeDouble(void* pMemory, uint32_t offset, double_t* value); DLL(void) BS_Memory_PokeDouble(void* pMemory, uint32_t offset, double_t* value);
DLL(double_t*) BS_Memory_PeekDouble(void* pMemory, uint32_t offset); DLL(double_t*) BS_Memory_PeekDouble(void* pMemory, uint32_t offset);
+271
View File
@@ -0,0 +1,271 @@
// 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 <http://www.gnu.org/licenses/>.
#include "SteamMatchmakingTypes.h"
//////////////////////////////////////////////////////////////////////////
BlitzISteamMatchmakingServerListResponse::BlitzISteamMatchmakingServerListResponse(void* pData, BP_BlitzFunction3_t pServerResponded,
BP_BlitzFunction3_t pServerFailedToRespond, BP_BlitzFunction3_t pRefreshComplete)
: m_pData(pData), m_pServerResponded(pServerResponded), m_pServerFailedToRespond(pServerFailedToRespond), m_pRefreshComplete(pRefreshComplete) {}
void BlitzISteamMatchmakingServerListResponse::ServerResponded(HServerListRequest hRequest, int iServer) {
if (this->m_pServerResponded != nullptr)
BP_CallFunction3(m_pServerResponded, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(hRequest), iServer);
}
void BlitzISteamMatchmakingServerListResponse::ServerFailedToRespond(HServerListRequest hRequest, int iServer) {
if (this->m_pServerFailedToRespond != nullptr)
BP_CallFunction3(m_pServerFailedToRespond, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(hRequest), iServer);
}
void BlitzISteamMatchmakingServerListResponse::RefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response) {
if (this->m_pRefreshComplete != nullptr)
BP_CallFunction3(m_pRefreshComplete, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(hRequest), static_cast<int32_t>(response));
}
DLL(BlitzISteamMatchmakingServerListResponse*) BS_ISteamMatchmakingServerListResponse_New(void* pData, BP_BlitzFunction3_t pServerResponded, BP_BlitzFunction3_t pServerFailedToRespond, BP_BlitzFunction3_t pRefreshComplete) {
return new BlitzISteamMatchmakingServerListResponse(pData, pServerResponded, pServerFailedToRespond, pRefreshComplete);
}
DLL(void) BS_ISteamMatchmakingServerListResponse_Destroy(BlitzISteamMatchmakingServerListResponse* pThis) {
delete pThis;
}
//////////////////////////////////////////////////////////////////////////
BlitzISteamMatchmakingPingResponse::BlitzISteamMatchmakingPingResponse(void* pData, BP_BlitzFunction2_t pServerResponded, BP_BlitzFunction1_t pServerFailedToRespond)
: m_pData(pData), m_pServerResponded(pServerResponded), m_pServerFailedToRespond(pServerFailedToRespond) {}
void BlitzISteamMatchmakingPingResponse::ServerResponded(gameserveritem_t &server) {
if (this->m_pServerResponded != nullptr)
BP_CallFunction2(m_pServerResponded, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(&server));
}
void BlitzISteamMatchmakingPingResponse::ServerFailedToRespond() {
if (this->m_pServerFailedToRespond != nullptr)
BP_CallFunction1(m_pServerFailedToRespond, reinterpret_cast<int32_t>(m_pData));
}
DLL(BlitzISteamMatchmakingPingResponse*) BS_ISteamMatchmakingPingResponse_New(void* pData, BP_BlitzFunction2_t pServerResponded, BP_BlitzFunction1_t pServerFailedToRespond) {
return new BlitzISteamMatchmakingPingResponse(pData, pServerResponded, pServerFailedToRespond);
}
DLL(void) BS_ISteamMatchmakingPingResponse_Destroy(BlitzISteamMatchmakingPingResponse* pThis) {
delete pThis;
}
//////////////////////////////////////////////////////////////////////////
BlitzISteamMatchmakingPlayersResponse::BlitzISteamMatchmakingPlayersResponse(void* pData, BP_BlitzFunction4_t pAddPlayerToList, BP_BlitzFunction1_t pPlayersFailedToRespond, BP_BlitzFunction1_t pPlayersRefreshComplete)
: m_pData(pData), m_pAddPlayerToList(pAddPlayerToList), m_pPlayersFailedToRespond(pPlayersFailedToRespond), m_pPlayersRefreshComplete(pPlayersRefreshComplete) {}
void BlitzISteamMatchmakingPlayersResponse::AddPlayerToList(const char *pchName, int nScore, float flTimePlayed) {
if (m_pAddPlayerToList != nullptr)
BP_CallFunction4(m_pAddPlayerToList, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(pchName), nScore, *reinterpret_cast<int32_t*>(&flTimePlayed));
}
void BlitzISteamMatchmakingPlayersResponse::PlayersFailedToRespond() {
if (m_pPlayersFailedToRespond != nullptr)
BP_CallFunction1(m_pPlayersFailedToRespond, reinterpret_cast<int32_t>(m_pData));
}
void BlitzISteamMatchmakingPlayersResponse::PlayersRefreshComplete() {
if (m_pPlayersRefreshComplete != nullptr)
BP_CallFunction1(m_pPlayersRefreshComplete, reinterpret_cast<int32_t>(m_pData));
}
DLL(BlitzISteamMatchmakingPlayersResponse*) BS_ISteamMatchmakingPlayersResponse_New(void* pData, BP_BlitzFunction4_t pAddPlayerToList, BP_BlitzFunction1_t pPlayersFailedToRespond, BP_BlitzFunction1_t pPlayersRefreshComplete) {
return new BlitzISteamMatchmakingPlayersResponse(pData, pAddPlayerToList, pPlayersFailedToRespond, pPlayersRefreshComplete);
}
DLL(void) BS_ISteamMatchmakingPlayersResponse_Destroy(BlitzISteamMatchmakingPlayersResponse* pThis) {
delete pThis;
}
//////////////////////////////////////////////////////////////////////////
BlitzISteamMatchmakingRulesResponse::BlitzISteamMatchmakingRulesResponse(void* pData, BP_BlitzFunction3_t pRulesResponded, BP_BlitzFunction1_t pRulesFailedToRespond, BP_BlitzFunction1_t pRulesRefreshComplete)
: m_pData(pData), m_pRulesResponded(pRulesResponded), m_pRulesFailedToRespond(pRulesFailedToRespond), m_pRulesRefreshComplete(pRulesRefreshComplete) {}
void BlitzISteamMatchmakingRulesResponse::RulesResponded(const char *pchRule, const char *pchValue) {
if (this->m_pRulesResponded != nullptr)
BP_CallFunction3(m_pRulesResponded, reinterpret_cast<int32_t>(m_pData), reinterpret_cast<int32_t>(pchRule), reinterpret_cast<int32_t>(pchValue));
}
void BlitzISteamMatchmakingRulesResponse::RulesFailedToRespond() {
if (this->m_pRulesFailedToRespond != nullptr)
BP_CallFunction1(m_pRulesFailedToRespond, reinterpret_cast<int32_t>(m_pData));
}
void BlitzISteamMatchmakingRulesResponse::RulesRefreshComplete() {
if (this->m_pRulesRefreshComplete != nullptr)
BP_CallFunction1(m_pRulesRefreshComplete, reinterpret_cast<int32_t>(m_pData));
}
DLL(BlitzISteamMatchmakingRulesResponse*) BS_ISteamMatchmakingRulesResponse_New(void* pData, BP_BlitzFunction3_t pRulesResponded, BP_BlitzFunction1_t pRulesFailedToRespond, BP_BlitzFunction1_t pRulesRefreshComplete) {
return new BlitzISteamMatchmakingRulesResponse(pData, pRulesResponded, pRulesFailedToRespond, pRulesRefreshComplete);
}
DLL(void) BS_ISteamMatchmakingRulesResponse_Destroy(BlitzISteamMatchmakingRulesResponse* pThis) {
delete pThis;
}
//////////////////////////////////////////////////////////////////////////
char* BS_TGameServerItem_CharBuffer = new char[128];
DLL(const char*) BS_TGameServerItem_GetName(gameserveritem_t* pThis) {
strcpy(BS_TGameServerItem_CharBuffer, pThis->GetName());
return BS_TGameServerItem_CharBuffer;
}
DLL(void) BS_TGameServerItem_SetName(gameserveritem_t* pThis, const char* cName) {
pThis->SetName(cName);
}
///< IP/Query Port/Connection Port for this server
DLL(servernetadr_t*) BS_TGameServerItem_NetAdr(gameserveritem_t* pThis) {
return &(pThis->m_NetAdr);
}
///< current ping time in milliseconds
DLL(int) BS_TGameServerItem_Ping(gameserveritem_t* pThis) {
return pThis->m_nPing;
}
///< server has responded successfully in the past
DLL(bool) BS_TGameServerItem_HadSuccessfulResponse(gameserveritem_t* pThis) {
return pThis->m_bHadSuccessfulResponse;
}
///< server is marked as not responding and should no longer be refreshed
DLL(bool) BS_TGameServerItem_DoNotRefresh(gameserveritem_t* pThis) {
return pThis->m_bDoNotRefresh;
}
///< current game directory
DLL(const char*) BS_TGameServerItem_GameDir(gameserveritem_t* pThis) {
strcpy(BS_TGameServerItem_CharBuffer, pThis->m_szGameDir);
return BS_TGameServerItem_CharBuffer;
}
///< current map
DLL(const char*) BS_TGameServerItem_Map(gameserveritem_t* pThis) {
strcpy(BS_TGameServerItem_CharBuffer, pThis->m_szMap);
return BS_TGameServerItem_CharBuffer;
}
///< game description
DLL(const char*) BS_TGameServerItem_GameDescription(gameserveritem_t* pThis) {
strcpy(BS_TGameServerItem_CharBuffer, pThis->m_szGameDescription);
return BS_TGameServerItem_CharBuffer;
}
///< Steam App ID of this server
DLL(uint32_t) BS_TGameServerItem_AppId(gameserveritem_t* pThis) {
return pThis->m_nAppID;
}
///< total number of players currently on the server. INCLUDES BOTS!!
DLL(uint32_t) BS_TGameServerItem_Players(gameserveritem_t* pThis) {
return pThis->m_nPlayers;
}
///< Maximum players that can join this server
DLL(uint32_t) BS_TGameServerItem_MaxPlayers(gameserveritem_t* pThis) {
return pThis->m_nMaxPlayers;
}
///< Number of bots (i.e simulated players) on this server
DLL(uint32_t) BS_TGameServerItem_BotPlayers(gameserveritem_t* pThis) {
return pThis->m_nBotPlayers;
}
///< true if this server needs a password to join
DLL(bool) BS_TGameServerItem_Password(gameserveritem_t* pThis) {
return pThis->m_bPassword;
}
///< Is this server protected by VAC
DLL(bool) BS_TGameServerItem_Secure(gameserveritem_t* pThis) {
return pThis->m_bSecure;
}
///< time (in unix time) when this server was last played on (for favorite/history servers)
DLL(uint32_t) BS_TGameServerItem_TimeLastPlayed(gameserveritem_t* pThis) {
return pThis->m_ulTimeLastPlayed;
}
///< server version as reported to Steam
DLL(uint32_t) BS_TGameServerItem_ServerVersion(gameserveritem_t* pThis) {
return pThis->m_nServerVersion;
}
/// the tags this server exposes
DLL(const char*) BS_TGameServerItem_GameTags(gameserveritem_t* pThis) {
strcpy(BS_TGameServerItem_CharBuffer, pThis->m_szGameTags);
return BS_TGameServerItem_CharBuffer;
}
/// steamID of the game server - invalid if it's doesn't have one (old server, or not connected to Steam)
DLL(CSteamID*) BS_TGameServerItem_SteamID(gameserveritem_t* pThis) {
return &(pThis->m_steamID);
}
//////////////////////////////////////////////////////////////////////////
char* BS_TServerNetAdr_CharBuffer = new char[128];
DLL(void) BS_TServerNetAdr_Set(servernetadr_t* pThis, servernetadr_t* pThat) {
*pThis = *pThat;
}
DLL(void) BS_TServerNetAdr_Init(servernetadr_t* pThis, uint32_t iIP, uint16_t iQueryPort, uint16_t iConnectionPort) {
pThis->Init(iIP, iQueryPort, iConnectionPort);
}
DLL(uint16_t) BS_TServerNetAdr_GetQueryPort(servernetadr_t* pThis) {
return pThis->GetQueryPort();
}
DLL(void) BS_TServerNetAdr_SetQueryPort(servernetadr_t* pThis, uint16_t iPort) {
pThis->SetQueryPort(iPort);
}
DLL(uint16_t) BS_TServerNetAdr_GetConnectionPort(servernetadr_t* pThis) {
return pThis->GetConnectionPort();
}
DLL(void) BS_TServerNetAdr_SetConnectionPort(servernetadr_t* pThis, uint16_t iPort) {
pThis->SetConnectionPort(iPort);
}
DLL(uint32_t) BS_TServerNetAdr_GetIP(servernetadr_t* pThis) {
return pThis->GetIP();
}
DLL(void) BS_TServerNetAdr_SetIP(servernetadr_t* pThis, uint32_t iIP) {
pThis->SetIP(iIP);
}
DLL(const char*) BS_TServerNetAdr_GetConnectionAddressString(servernetadr_t* pThis) {
strcpy(BS_TServerNetAdr_CharBuffer, pThis->GetConnectionAddressString());
return BS_TServerNetAdr_CharBuffer;
}
DLL(const char*) BS_TServerNetAdr_GetQueryAddressString(servernetadr_t* pThis) {
strcpy(BS_TServerNetAdr_CharBuffer, pThis->GetQueryAddressString());
return BS_TServerNetAdr_CharBuffer;
}
DLL(uint32_t) BS_TServerNetAdr_Compare(servernetadr_t* pThis, servernetadr_t* pThat) {
return (pThis < pThat ? -1 : (pThis > pThat ? 1 : 0));
}
+137
View File
@@ -0,0 +1,137 @@
// 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 <http://www.gnu.org/licenses/>.
#pragma once
#include "BlitzSteamInternal.h"
#include "../Helpers/BlitzPointer.h"
//-----------------------------------------------------------------------------
// Purpose: Callback interface for receiving responses after a server list refresh
// or an individual server update.
//
// Since you get these callbacks after requesting full list refreshes you will
// usually implement this interface inside an object like CServerBrowser. If that
// object is getting destructed you should use ISteamMatchMakingServers()->CancelQuery()
// to cancel any in-progress queries so you don't get a callback into the destructed
// object and crash.
//-----------------------------------------------------------------------------
class BlitzISteamMatchmakingServerListResponse : public ISteamMatchmakingServerListResponse {
private:
void* m_pData;
BP_BlitzFunction3_t m_pServerResponded;
BP_BlitzFunction3_t m_pServerFailedToRespond;
BP_BlitzFunction3_t m_pRefreshComplete;
public:
BlitzISteamMatchmakingServerListResponse(void* pData, BP_BlitzFunction3_t pServerResponded, BP_BlitzFunction3_t pServerFailedToRespond, BP_BlitzFunction3_t pRefreshComplete);
// Server has responded ok with updated data
virtual void ServerResponded(HServerListRequest hRequest, int iServer) override;
// Server has failed to respond
virtual void ServerFailedToRespond(HServerListRequest hRequest, int iServer) override;
// A list refresh you had initiated is now 100% completed
virtual void RefreshComplete(HServerListRequest hRequest, EMatchMakingServerResponse response) override;
};
//-----------------------------------------------------------------------------
// Purpose: Callback interface for receiving responses after pinging an individual server
//
// These callbacks all occur in response to querying an individual server
// via the ISteamMatchmakingServers()->PingServer() call below. If you are
// destructing an object that implements this interface then you should call
// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
// which is in progress. Failure to cancel in progress queries when destructing
// a callback handler may result in a crash when a callback later occurs.
//-----------------------------------------------------------------------------
class BlitzISteamMatchmakingPingResponse : public ISteamMatchmakingPingResponse {
private:
void* m_pData;
BP_BlitzFunction2_t m_pServerResponded;
BP_BlitzFunction1_t m_pServerFailedToRespond;
public:
BlitzISteamMatchmakingPingResponse(void* pData, BP_BlitzFunction2_t pServerResponded, BP_BlitzFunction1_t pServerFailedToRespond);
// Server has responded successfully and has updated data
virtual void ServerResponded(gameserveritem_t &server) override;
// Server failed to respond to the ping request
virtual void ServerFailedToRespond() override;
};
//-----------------------------------------------------------------------------
// Purpose: Callback interface for receiving responses after requesting details on
// who is playing on a particular server.
//
// These callbacks all occur in response to querying an individual server
// via the ISteamMatchmakingServers()->PlayerDetails() call below. If you are
// destructing an object that implements this interface then you should call
// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
// which is in progress. Failure to cancel in progress queries when destructing
// a callback handler may result in a crash when a callback later occurs.
//-----------------------------------------------------------------------------
class BlitzISteamMatchmakingPlayersResponse : public ISteamMatchmakingPlayersResponse {
private:
void* m_pData;
BP_BlitzFunction4_t m_pAddPlayerToList;
BP_BlitzFunction1_t m_pPlayersFailedToRespond;
BP_BlitzFunction1_t m_pPlayersRefreshComplete;
public:
BlitzISteamMatchmakingPlayersResponse(void* pData, BP_BlitzFunction4_t pAddPlayerToList, BP_BlitzFunction1_t pPlayersFailedToRespond, BP_BlitzFunction1_t pPlayersRefreshComplete);
// Got data on a new player on the server -- you'll get this callback once per player
// on the server which you have requested player data on.
virtual void AddPlayerToList(const char *pchName, int nScore, float flTimePlayed) override;
// The server failed to respond to the request for player details
virtual void PlayersFailedToRespond() override;
// The server has finished responding to the player details request
// (ie, you won't get anymore AddPlayerToList callbacks)
virtual void PlayersRefreshComplete() override;
};
//-----------------------------------------------------------------------------
// Purpose: Callback interface for receiving responses after requesting rules
// details on a particular server.
//
// These callbacks all occur in response to querying an individual server
// via the ISteamMatchmakingServers()->ServerRules() call below. If you are
// destructing an object that implements this interface then you should call
// ISteamMatchmakingServers()->CancelServerQuery() passing in the handle to the query
// which is in progress. Failure to cancel in progress queries when destructing
// a callback handler may result in a crash when a callback later occurs.
//-----------------------------------------------------------------------------
class BlitzISteamMatchmakingRulesResponse : public ISteamMatchmakingRulesResponse {
private:
void* m_pData;
BP_BlitzFunction3_t m_pRulesResponded;
BP_BlitzFunction1_t m_pRulesFailedToRespond, m_pRulesRefreshComplete;
public:
BlitzISteamMatchmakingRulesResponse(void* pData, BP_BlitzFunction3_t pRulesResponded, BP_BlitzFunction1_t pRulesFailedToRespond, BP_BlitzFunction1_t pRulesRefreshComplete);
// Got data on a rule on the server -- you'll get one of these per rule defined on
// the server you are querying
virtual void RulesResponded(const char *pchRule, const char *pchValue) override;
// The server failed to respond to the request for rule details
virtual void RulesFailedToRespond() override;
// The server has finished responding to the rule details request
// (ie, you won't get anymore RulesResponded callbacks)
virtual void RulesRefreshComplete() override;
};
+17
View File
@@ -0,0 +1,17 @@
// 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 <http://www.gnu.org/licenses/>.
#include "SteamTypes.h"
+19
View File
@@ -0,0 +1,19 @@
// 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 <http://www.gnu.org/licenses/>.
#pragma once
#include "BlitzSteamInternal.h"
+98 -98
View File
@@ -1,99 +1,99 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
// Steam API setup & shutdown // Steam API setup & shutdown
// //
// These functions manage loading, initializing and shutdown of the steamclient.dll // These functions manage loading, initializing and shutdown of the steamclient.dll
// //
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
DLL(int32_t) BS_SteamAPI_Init() { DLL(int32_t) BS_SteamAPI_Init() {
return SteamAPI_Init(); return SteamAPI_Init();
} }
DLL(void) BS_SteamAPI_Shutdown() { DLL(void) BS_SteamAPI_Shutdown() {
SteamAPI_Shutdown(); SteamAPI_Shutdown();
} }
// checks if a local Steam client is running // checks if a local Steam client is running
DLL(int32_t) BS_SteamAPI_IsSteamRunning() { DLL(int32_t) BS_SteamAPI_IsSteamRunning() {
return SteamAPI_IsSteamRunning(); return SteamAPI_IsSteamRunning();
} }
// Detects if your executable was launched through the Steam client, and restarts your game through // Detects if your executable was launched through the Steam client, and restarts your game through
// the client if necessary. The Steam client will be started if it is not running. // the client if necessary. The Steam client will be started if it is not running.
// //
// Returns: true if your executable was NOT launched through the Steam client. This function will // Returns: true if your executable was NOT launched through the Steam client. This function will
// then start your application through the client. Your current process should exit. // then start your application through the client. Your current process should exit.
// //
// false if your executable was started through the Steam client or a steam_appid.txt file // false if your executable was started through the Steam client or a steam_appid.txt file
// is present in your game's directory (for development). Your current process should continue. // is present in your game's directory (for development). Your current process should continue.
// //
// NOTE: This function should be used only if you are using CEG or not using Steam's DRM. Once applied // NOTE: This function should be used only if you are using CEG or not using Steam's DRM. Once applied
// to your executable, Steam's DRM will handle restarting through Steam if necessary. // to your executable, Steam's DRM will handle restarting through Steam if necessary.
DLL(int32_t) BS_SteamAPI_RestartAppIfNecessary(uint32_t unOwnAppID) { DLL(int32_t) BS_SteamAPI_RestartAppIfNecessary(uint32_t unOwnAppID) {
return SteamAPI_RestartAppIfNecessary(unOwnAppID); return SteamAPI_RestartAppIfNecessary(unOwnAppID);
} }
// crash dump recording functions // crash dump recording functions
DLL(void) BS_SteamAPI_WriteMiniDump(uint32_t uStructuredExceptionCode, void* pvExceptionInfo, uint32_t uBuildID) { DLL(void) BS_SteamAPI_WriteMiniDump(uint32_t uStructuredExceptionCode, void* pvExceptionInfo, uint32_t uBuildID) {
SteamAPI_WriteMiniDump(uStructuredExceptionCode, pvExceptionInfo, uBuildID); SteamAPI_WriteMiniDump(uStructuredExceptionCode, pvExceptionInfo, uBuildID);
} }
DLL(void) BS_SteamAPI_SetMiniDumpComment(const char* pchMsg) { DLL(void) BS_SteamAPI_SetMiniDumpComment(const char* pchMsg) {
SteamAPI_SetMiniDumpComment(pchMsg); SteamAPI_SetMiniDumpComment(pchMsg);
} }
// Most Steam API functions allocate some amount of thread-local memory for // Most Steam API functions allocate some amount of thread-local memory for
// parameter storage. The SteamAPI_ReleaseCurrentThreadMemory() function // parameter storage. The SteamAPI_ReleaseCurrentThreadMemory() function
// will free all API-related memory associated with the calling thread. // will free all API-related memory associated with the calling thread.
// This memory is also released automatically by SteamAPI_RunCallbacks(), so // This memory is also released automatically by SteamAPI_RunCallbacks(), so
// a single-threaded program does not need to explicitly call this function. // a single-threaded program does not need to explicitly call this function.
DLL(void) BS_SteamAPI_ReleaseCurrentThreadMemory() { DLL(void) BS_SteamAPI_ReleaseCurrentThreadMemory() {
return SteamAPI_ReleaseCurrentThreadMemory(); return SteamAPI_ReleaseCurrentThreadMemory();
} }
// -- Callbacks // -- Callbacks
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
// steam callback and call-result helpers // steam callback and call-result helpers
// //
// The following macros and classes are used to register your application for // The following macros and classes are used to register your application for
// callbacks and call-results, which are delivered in a predictable manner. // callbacks and call-results, which are delivered in a predictable manner.
// //
// STEAM_CALLBACK macros are meant for use inside of a C++ class definition. // STEAM_CALLBACK macros are meant for use inside of a C++ class definition.
// They map a Steam notification callback directly to a class member function // They map a Steam notification callback directly to a class member function
// which is automatically prototyped as "void func( callback_type *pParam )". // which is automatically prototyped as "void func( callback_type *pParam )".
// //
// CCallResult is used with specific Steam APIs that return "result handles". // CCallResult is used with specific Steam APIs that return "result handles".
// The handle can be passed to a CCallResult object's Set function, along with // The handle can be passed to a CCallResult object's Set function, along with
// an object pointer and member-function pointer. The member function will // an object pointer and member-function pointer. The member function will
// be executed once the results of the Steam API call are available. // be executed once the results of the Steam API call are available.
// //
// CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK // CCallback and CCallbackManual classes can be used instead of STEAM_CALLBACK
// macros if you require finer control over registration and unregistration. // macros if you require finer control over registration and unregistration.
// //
// Callbacks and call-results are queued automatically and are only // Callbacks and call-results are queued automatically and are only
// delivered/executed when your application calls SteamAPI_RunCallbacks(). // delivered/executed when your application calls SteamAPI_RunCallbacks().
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
// SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously, // SteamAPI_RunCallbacks is safe to call from multiple threads simultaneously,
// but if you choose to do this, callback code may be executed on any thread. // but if you choose to do this, callback code may be executed on any thread.
DLL(void) BS_SteamAPI_RunCallbacks() { DLL(void) BS_SteamAPI_RunCallbacks() {
SteamAPI_RunCallbacks(); SteamAPI_RunCallbacks();
} }
+50 -50
View File
@@ -1,50 +1,50 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: This is a restricted interface that can only be used by previously approved apps, // Purpose: This is a restricted interface that can only be used by previously approved apps,
// contact your Steam Account Manager if you believe you need access to this API. // contact your Steam Account Manager if you believe you need access to this API.
// This interface lets you detect installed apps for the local Steam client, useful for debugging tools // This interface lets you detect installed apps for the local Steam client, useful for debugging tools
// to offer lists of apps to debug via Steam. // to offer lists of apps to debug via Steam.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamAppList*) BS_SteamAppList() { DLL(ISteamAppList*) BS_SteamAppList() {
return SteamAppList(); return SteamAppList();
} }
DLL(int32_t) BS_ISteamAppList_GetNumInstalledApps(ISteamAppList* lpSteamAppList) { DLL(int32_t) BS_ISteamAppList_GetNumInstalledApps(ISteamAppList* lpSteamAppList) {
return lpSteamAppList->GetNumInstalledApps(); return lpSteamAppList->GetNumInstalledApps();
} }
DLL(int32_t) BS_ISteamAppList_GetInstalledApps(ISteamAppList* lpSteamAppList, AppId_t *pvecAppID, uint32_t unMaxAppIDs) { DLL(int32_t) BS_ISteamAppList_GetInstalledApps(ISteamAppList* lpSteamAppList, AppId_t *pvecAppID, uint32_t unMaxAppIDs) {
return lpSteamAppList->GetInstalledApps(pvecAppID, unMaxAppIDs); return lpSteamAppList->GetInstalledApps(pvecAppID, unMaxAppIDs);
} }
// returns -1 if no name was found // returns -1 if no name was found
DLL(int32_t) BS_ISteamAppList_GetAppName(ISteamAppList* lpSteamAppList, AppId_t nAppID, const char* pchName, uint32_t cchNameMax) { DLL(int32_t) BS_ISteamAppList_GetAppName(ISteamAppList* lpSteamAppList, AppId_t nAppID, const char* pchName, uint32_t cchNameMax) {
return lpSteamAppList->GetAppName(nAppID, (char*)pchName, cchNameMax); return lpSteamAppList->GetAppName(nAppID, (char*)pchName, cchNameMax);
} }
// returns -1 if no dir was found // returns -1 if no dir was found
DLL(int32_t) BS_ISteamAppList_GetAppInstallDir(ISteamAppList* lpSteamAppList, AppId_t nAppID, char* pchDirectoryBuffer, uint32_t cchDirectoryMax) { DLL(int32_t) BS_ISteamAppList_GetAppInstallDir(ISteamAppList* lpSteamAppList, AppId_t nAppID, char* pchDirectoryBuffer, uint32_t cchDirectoryMax) {
return lpSteamAppList->GetAppInstallDir(nAppID, pchDirectoryBuffer, cchDirectoryMax); return lpSteamAppList->GetAppInstallDir(nAppID, pchDirectoryBuffer, cchDirectoryMax);
} }
// return the buildid of this app, may change at any time based on backend updates to the game // return the buildid of this app, may change at any time based on backend updates to the game
DLL(int32_t) BS_ISteamAppList_GetAppBuildId(ISteamAppList* lpSteamAppList, AppId_t nAppID) { DLL(int32_t) BS_ISteamAppList_GetAppBuildId(ISteamAppList* lpSteamAppList, AppId_t nAppID) {
return lpSteamAppList->GetAppBuildId(nAppID); return lpSteamAppList->GetAppBuildId(nAppID);
} }
+146 -146
View File
@@ -1,146 +1,146 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: interface to app data // Purpose: interface to app data
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamApps*) BS_SteamApps() { DLL(ISteamApps*) BS_SteamApps() {
return SteamApps(); return SteamApps();
} }
DLL(int32_t) BS_ISteamApps_IsSubscribed(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_IsSubscribed(ISteamApps* lpSteamApps) {
return lpSteamApps->BIsSubscribed(); return lpSteamApps->BIsSubscribed();
} }
DLL(int32_t) BS_ISteamApps_IsLowViolence(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_IsLowViolence(ISteamApps* lpSteamApps) {
return lpSteamApps->BIsLowViolence(); return lpSteamApps->BIsLowViolence();
} }
DLL(int32_t) BS_ISteamApps_IsCybercafe(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_IsCybercafe(ISteamApps* lpSteamApps) {
return lpSteamApps->BIsCybercafe(); return lpSteamApps->BIsCybercafe();
} }
DLL(int32_t) BS_ISteamApps_IsVACBanned(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_IsVACBanned(ISteamApps* lpSteamApps) {
return lpSteamApps->BIsVACBanned(); return lpSteamApps->BIsVACBanned();
} }
DLL(const char*) BS_ISteamApps_GetCurrentGameLanguage(ISteamApps* lpSteamApps) { DLL(const char*) BS_ISteamApps_GetCurrentGameLanguage(ISteamApps* lpSteamApps) {
return lpSteamApps->GetCurrentGameLanguage(); return lpSteamApps->GetCurrentGameLanguage();
} }
DLL(const char*) BS_ISteamApps_GetAvailableGameLanguages(ISteamApps* lpSteamApps) { DLL(const char*) BS_ISteamApps_GetAvailableGameLanguages(ISteamApps* lpSteamApps) {
return lpSteamApps->GetAvailableGameLanguages(); return lpSteamApps->GetAvailableGameLanguages();
} }
// only use this member if you need to check ownership of another game related to yours, a demo for example // 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) { DLL(int32_t) BS_ISteamApps_IsSubscribedApp(ISteamApps* lpSteamApps, AppId_t appID) {
return lpSteamApps->BIsSubscribedApp(appID); return lpSteamApps->BIsSubscribedApp(appID);
} }
// Takes AppID of DLC and checks if the user owns the DLC & if the DLC is installed // 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) { DLL(int32_t) BS_ISteamApps_IsDlcInstalled(ISteamApps* lpSteamApps, AppId_t appID) {
return lpSteamApps->BIsDlcInstalled(appID); return lpSteamApps->BIsDlcInstalled(appID);
} }
// returns the Unix time of the purchase of the app // returns the Unix time of the purchase of the app
DLL(int32_t) BS_ISteamApps_GetEarliestPurchaseUnixTime(ISteamApps* lpSteamApps, AppId_t appID) { DLL(int32_t) BS_ISteamApps_GetEarliestPurchaseUnixTime(ISteamApps* lpSteamApps, AppId_t appID) {
return lpSteamApps->GetEarliestPurchaseUnixTime(appID); return lpSteamApps->GetEarliestPurchaseUnixTime(appID);
} }
// Checks if the user is subscribed to the current app through a free weekend // 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 // 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 // Before using, please ask your Valve technical contact how to package and secure your free weekened
DLL(int32_t) BS_ISteamApps_IsSubscribedFromFreeWeekend(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_IsSubscribedFromFreeWeekend(ISteamApps* lpSteamApps) {
return lpSteamApps->BIsSubscribedFromFreeWeekend(); return lpSteamApps->BIsSubscribedFromFreeWeekend();
} }
// Returns the number of DLC pieces for the running app // Returns the number of DLC pieces for the running app
DLL(int32_t) BS_ISteamApps_GetDLCCount(ISteamApps* lpSteamApps) { DLL(int32_t) BS_ISteamApps_GetDLCCount(ISteamApps* lpSteamApps) {
return lpSteamApps->GetDLCCount(); return lpSteamApps->GetDLCCount();
} }
// Returns metadata for DLC by index, of range [0, 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) { 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); return lpSteamApps->BGetDLCDataByIndex(iDLC, pAppIdBuffer, (bool*)pbAvailableBuffer, pchNameBuffer, cchNameBufferSize);
} }
// Install/Uninstall control for optional DLC // Install/Uninstall control for optional DLC
DLL(void) BS_ISteamApps_InstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) { DLL(void) BS_ISteamApps_InstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) {
lpSteamApps->InstallDLC(nAppID); lpSteamApps->InstallDLC(nAppID);
} }
DLL(void) BS_ISteamApps_UninstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) { DLL(void) BS_ISteamApps_UninstallDLC(ISteamApps* lpSteamApps, AppId_t nAppID) {
lpSteamApps->UninstallDLC(nAppID); lpSteamApps->UninstallDLC(nAppID);
} }
// Request cd-key for yourself or owned DLC. If you are interested in this // 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 // 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. // to users when they purchase the game, before the game ships.
// You'll receive an AppProofOfPurchaseKeyResponse_t callback when // You'll receive an AppProofOfPurchaseKeyResponse_t callback when
// the key is available (which may be immediately). // the key is available (which may be immediately).
DLL(void) BS_ISteamApps_RequestAppProofOfPurchaseKey(ISteamApps* lpSteamApps, AppId_t nAppID) { DLL(void) BS_ISteamApps_RequestAppProofOfPurchaseKey(ISteamApps* lpSteamApps, AppId_t nAppID) {
lpSteamApps->RequestAppProofOfPurchaseKey(nAppID); lpSteamApps->RequestAppProofOfPurchaseKey(nAppID);
} }
// returns current beta branch name, 'public' is the default branch // returns current beta branch name, 'public' is the default branch
DLL(int32_t) BS_ISteamApps_GetCurrentBetaName(ISteamApps* lpSteamApps, char* pchNameBuffer, int cchNameBufferSize) { DLL(int32_t) BS_ISteamApps_GetCurrentBetaName(ISteamApps* lpSteamApps, char* pchNameBuffer, int cchNameBufferSize) {
return lpSteamApps->GetCurrentBetaName(pchNameBuffer, cchNameBufferSize); return lpSteamApps->GetCurrentBetaName(pchNameBuffer, cchNameBufferSize);
} }
// signal Steam that game files seems corrupt or missing // signal Steam that game files seems corrupt or missing
DLL(int32_t) BS_ISteamApps_MarkContentCorrupt(ISteamApps* lpSteamApps, uint32_t bMissingFilesOnly) { DLL(int32_t) BS_ISteamApps_MarkContentCorrupt(ISteamApps* lpSteamApps, uint32_t bMissingFilesOnly) {
return lpSteamApps->MarkContentCorrupt(bMissingFilesOnly != 0); return lpSteamApps->MarkContentCorrupt(bMissingFilesOnly != 0);
} }
// return installed depots in mount order // return installed depots in mount order
DLL(int32_t) BS_ISteamApps_GetInstalledDepots(ISteamApps* lpSteamApps, AppId_t nAppID, DepotId_t *pDepotsBuffer, uint32_t cMaxDepots) { DLL(int32_t) BS_ISteamApps_GetInstalledDepots(ISteamApps* lpSteamApps, AppId_t nAppID, DepotId_t *pDepotsBuffer, uint32_t cMaxDepots) {
return lpSteamApps->GetInstalledDepots(nAppID, pDepotsBuffer, cMaxDepots); return lpSteamApps->GetInstalledDepots(nAppID, pDepotsBuffer, cMaxDepots);
} }
// returns current app install folder for AppID, returns folder name length // 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) { DLL(int32_t) BS_ISteamApps_GetAppInstallDir(ISteamApps* lpSteamApps, AppId_t appID, char *pchFolderBuffer, uint32_t cchFolderBufferSize) {
return lpSteamApps->GetAppInstallDir(appID, pchFolderBuffer, cchFolderBufferSize); return lpSteamApps->GetAppInstallDir(appID, pchFolderBuffer, cchFolderBufferSize);
} }
// returns true if that app is installed (not necessarily owned) // returns true if that app is installed (not necessarily owned)
DLL(int32_t) BS_ISteamApps_IsAppInstalled(ISteamApps* lpSteamApps, AppId_t appID) { DLL(int32_t) BS_ISteamApps_IsAppInstalled(ISteamApps* lpSteamApps, AppId_t appID) {
return lpSteamApps->BIsAppInstalled(appID); return lpSteamApps->BIsAppInstalled(appID);
} }
// returns the SteamID of the original owner. If different from current user, it's borrowed // returns the SteamID of the original owner. If different from current user, it's borrowed
DLL(CSteamID*) BS_ISteamApps_GetAppOwner(ISteamApps* lpSteamApps) { DLL(CSteamID*) BS_ISteamApps_GetAppOwner(ISteamApps* lpSteamApps) {
return new CSteamID(lpSteamApps->GetAppOwner()); return new CSteamID(lpSteamApps->GetAppOwner());
} }
// Returns the associated launch param if the game is run via steam://run/<appid>//?param1=value1;param2=value2;param3=value3 etc. // Returns the associated launch param if the game is run via steam://run/<appid>//?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 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, // 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. // 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) { DLL(const char*) BS_ISteamApps_GetLaunchQueryParam(ISteamApps* lpSteamApps, const char *pchKey) {
return lpSteamApps->GetLaunchQueryParam(pchKey); return lpSteamApps->GetLaunchQueryParam(pchKey);
} }
// get download progress for optional DLC // get download progress for optional DLC
DLL(int32_t) BS_ISteamApps_GetDlcDownloadProgress(ISteamApps* lpSteamApps, AppId_t nAppID, uint64_t* pLLBytesDownloaded, uint64_t* pLLBytesTotal) { DLL(int32_t) BS_ISteamApps_GetDlcDownloadProgress(ISteamApps* lpSteamApps, AppId_t nAppID, uint64_t* pLLBytesDownloaded, uint64_t* pLLBytesTotal) {
return lpSteamApps->GetDlcDownloadProgress(nAppID, pLLBytesDownloaded, 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 // 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) { DLL(int32_t) BS_ISteamApps_GetAppBuildId(ISteamApps* lpSteamApps) {
return lpSteamApps->GetAppBuildId(); return lpSteamApps->GetAppBuildId();
} }
+147 -147
View File
@@ -1,147 +1,147 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamClient*) BS_SteamClient() { DLL(ISteamClient*) BS_SteamClient() {
return SteamClient(); return SteamClient();
} }
DLL(HSteamPipe) BS_ISteamClient_CreateSteamPipe(ISteamClient* lpSteamClient) { DLL(HSteamPipe) BS_ISteamClient_CreateSteamPipe(ISteamClient* lpSteamClient) {
return lpSteamClient->CreateSteamPipe(); return lpSteamClient->CreateSteamPipe();
} }
DLL(int32_t) BS_ISteamClient_ReleaseSteamPipe(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe) { DLL(int32_t) BS_ISteamClient_ReleaseSteamPipe(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe) {
return lpSteamClient->BReleaseSteamPipe(hSteamPipe); return lpSteamClient->BReleaseSteamPipe(hSteamPipe);
} }
DLL(HSteamUser) BS_ISteamClient_ConnectToGlobalUser(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe) { DLL(HSteamUser) BS_ISteamClient_ConnectToGlobalUser(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe) {
return lpSteamClient->ConnectToGlobalUser(hSteamPipe); return lpSteamClient->ConnectToGlobalUser(hSteamPipe);
} }
DLL(void) BS_ISteamClient_SetLocalIPBinding(ISteamClient* lpSteamClient, uint32_t unIP, uint16 usPort) { DLL(void) BS_ISteamClient_SetLocalIPBinding(ISteamClient* lpSteamClient, uint32_t unIP, uint16 usPort) {
return lpSteamClient->SetLocalIPBinding(unIP, usPort); return lpSteamClient->SetLocalIPBinding(unIP, usPort);
} }
DLL(HSteamUser) BS_ISteamClient_CreateLocalUser(ISteamClient* lpSteamClient, HSteamPipe* phSteamPipe, EAccountType eAccountType) { DLL(HSteamUser) BS_ISteamClient_CreateLocalUser(ISteamClient* lpSteamClient, HSteamPipe* phSteamPipe, EAccountType eAccountType) {
return lpSteamClient->CreateLocalUser(phSteamPipe, eAccountType); return lpSteamClient->CreateLocalUser(phSteamPipe, eAccountType);
} }
DLL(void) BS_ISteamClient_ReleaseUser(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, HSteamUser hSteamUser) { DLL(void) BS_ISteamClient_ReleaseUser(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, HSteamUser hSteamUser) {
return lpSteamClient->ReleaseUser(hSteamPipe, hSteamUser); return lpSteamClient->ReleaseUser(hSteamPipe, hSteamUser);
} }
DLL(int32_t) BS_ISteamClient_GetIPCCallCount(ISteamClient* lpSteamClient) { DLL(int32_t) BS_ISteamClient_GetIPCCallCount(ISteamClient* lpSteamClient) {
return lpSteamClient->GetIPCCallCount(); return lpSteamClient->GetIPCCallCount();
} }
DLL(int32_t) BS_ISteamClient_ShutdownIfAllPipesClosed(ISteamClient* lpSteamClient) { DLL(int32_t) BS_ISteamClient_ShutdownIfAllPipesClosed(ISteamClient* lpSteamClient) {
return lpSteamClient->BShutdownIfAllPipesClosed(); return lpSteamClient->BShutdownIfAllPipesClosed();
} }
// Interfaces // Interfaces
DLL(ISteamAppList*) BS_ISteamClient_GetSteamAppList(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamAppList*) BS_ISteamClient_GetSteamAppList(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamAppList(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamAppList(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamApps*) BS_ISteamClient_GetSteamApps(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamApps*) BS_ISteamClient_GetSteamApps(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamApps(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamApps(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamController*) BS_ISteamClient_GetSteamController(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamController*) BS_ISteamClient_GetSteamController(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamController(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamController(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamFriends*) BS_ISteamClient_GetSteamFriends(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamFriends*) BS_ISteamClient_GetSteamFriends(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamFriends(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamFriends(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamGameServer*) BS_ISteamClient_GetSteamGameServer(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamGameServer*) BS_ISteamClient_GetSteamGameServer(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamGameServer(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamGameServer(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamGameServerStats*) BS_ISteamClient_GetSteamGameServerStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamGameServerStats*) BS_ISteamClient_GetSteamGameServerStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamGameServerStats(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamHTMLSurface*) BS_ISteamClient_GetSteamHTMLSurface(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamHTMLSurface*) BS_ISteamClient_GetSteamHTMLSurface(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamHTMLSurface(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamHTMLSurface(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamHTTP*) BS_ISteamClient_GetSteamHTTP(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamHTTP*) BS_ISteamClient_GetSteamHTTP(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamHTTP(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamHTTP(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamInventory*) BS_ISteamClient_GetSteamInventory(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamInventory*) BS_ISteamClient_GetSteamInventory(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamInventory(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamInventory(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamMatchmaking*) BS_ISteamClient_GetSteamMatchmaking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamMatchmaking*) BS_ISteamClient_GetSteamMatchmaking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamMatchmaking(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamMatchmaking(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamMatchmakingServers*) BS_ISteamClient_GetSteamMatchmakingServers(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamMatchmakingServers*) BS_ISteamClient_GetSteamMatchmakingServers(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamMatchmakingServers(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamMatchmakingServers(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamMusic*) BS_ISteamClient_GetSteamMusic(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamMusic*) BS_ISteamClient_GetSteamMusic(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamMusic(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamMusic(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamMusicRemote*) BS_ISteamClient_GetSteamMusicRemote(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamMusicRemote*) BS_ISteamClient_GetSteamMusicRemote(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamMusicRemote(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamMusicRemote(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamNetworking*) BS_ISteamClient_GetSteamNetworking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamNetworking*) BS_ISteamClient_GetSteamNetworking(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamNetworking(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamNetworking(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamRemoteStorage*) BS_ISteamClient_GetSteamRemoteStorage(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamRemoteStorage*) BS_ISteamClient_GetSteamRemoteStorage(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamRemoteStorage(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamRemoteStorage(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamScreenshots*) BS_ISteamClient_GetSteamScreenshots(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamScreenshots*) BS_ISteamClient_GetSteamScreenshots(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamScreenshots(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamScreenshots(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamUGC*) BS_ISteamClient_GetSteamUGC(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamUGC*) BS_ISteamClient_GetSteamUGC(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUGC(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamUGC(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamUnifiedMessages*) BS_ISteamClient_GetSteamUnifiedMessages(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamUnifiedMessages*) BS_ISteamClient_GetSteamUnifiedMessages(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUnifiedMessages(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamUnifiedMessages(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamUser*) BS_ISteamClient_GetSteamUser(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamUser*) BS_ISteamClient_GetSteamUser(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUser(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamUser(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamUserStats*) BS_ISteamClient_GetSteamUserStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamUserStats*) BS_ISteamClient_GetSteamUserStats(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUserStats(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamUserStats(hSteamUser, hSteamPipe, pchVersion);
} }
DLL(ISteamUtils*) BS_ISteamClient_GetSteamUtils(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamUtils*) BS_ISteamClient_GetSteamUtils(ISteamClient* lpSteamClient, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamUtils(hSteamPipe, pchVersion); return lpSteamClient->GetISteamUtils(hSteamPipe, pchVersion);
} }
DLL(ISteamVideo*) BS_ISteamClient_GetSteamVideo(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) { DLL(ISteamVideo*) BS_ISteamClient_GetSteamVideo(ISteamClient* lpSteamClient, HSteamUser hSteamUser, HSteamPipe hSteamPipe, const char *pchVersion) {
return lpSteamClient->GetISteamVideo(hSteamUser, hSteamPipe, pchVersion); return lpSteamClient->GetISteamVideo(hSteamUser, hSteamPipe, pchVersion);
} }
// Callbacks & Hooks // Callbacks & Hooks
DLL(void) BS_ISteamClient_SetWarningMessageHook(ISteamClient* lpSteamClient, SteamAPIWarningMessageHook_t fpfunction) { DLL(void) BS_ISteamClient_SetWarningMessageHook(ISteamClient* lpSteamClient, SteamAPIWarningMessageHook_t fpfunction) {
lpSteamClient->SetWarningMessageHook(fpfunction); lpSteamClient->SetWarningMessageHook(fpfunction);
} }
+126 -126
View File
@@ -1,126 +1,126 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Native Steam controller support API // Purpose: Native Steam controller support API
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamController*) BS_SteamController() { DLL(ISteamController*) BS_SteamController() {
return SteamController(); return SteamController();
} }
// Init and Shutdown must be called when starting/ending use of this interface // Init and Shutdown must be called when starting/ending use of this interface
DLL(int32_t) BS_ISteamController_Init(ISteamController* lpSteamController) { DLL(int32_t) BS_ISteamController_Init(ISteamController* lpSteamController) {
return lpSteamController->Init(); return lpSteamController->Init();
} }
// Init and Shutdown must be called when starting/ending use of this interface // Init and Shutdown must be called when starting/ending use of this interface
DLL(int32_t) BS_ISteamController_Shutdown(ISteamController* lpSteamController) { DLL(int32_t) BS_ISteamController_Shutdown(ISteamController* lpSteamController) {
return lpSteamController->Shutdown(); return lpSteamController->Shutdown();
} }
// Pump callback/callresult events // Pump callback/callresult events
// Note: SteamAPI_RunCallbacks will do this for you, so you should never need to call this directly. // Note: SteamAPI_RunCallbacks will do this for you, so you should never need to call this directly.
DLL(void) BS_ISteamController_RunFrame(ISteamController* lpSteamController) { DLL(void) BS_ISteamController_RunFrame(ISteamController* lpSteamController) {
lpSteamController->RunFrame(); lpSteamController->RunFrame();
} }
// Enumerate currently connected controllers // Enumerate currently connected controllers
// handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles
// Returns the number of handles written to handlesOut // Returns the number of handles written to handlesOut
DLL(int32_t) BS_ISteamController_GetConnectedControllers(ISteamController* lpSteamController, ControllerHandle_t* pHandlesOut) { DLL(int32_t) BS_ISteamController_GetConnectedControllers(ISteamController* lpSteamController, ControllerHandle_t* pHandlesOut) {
return lpSteamController->GetConnectedControllers(pHandlesOut); return lpSteamController->GetConnectedControllers(pHandlesOut);
} }
ControllerHandle_t* pControllerHandles = new ControllerHandle_t[STEAM_CONTROLLER_MAX_COUNT]; ControllerHandle_t* pControllerHandles = new ControllerHandle_t[STEAM_CONTROLLER_MAX_COUNT];
DLL(int32_t) BS_ISteamController_GetConnectedControllersSimple(ISteamController* lpSteamController) { DLL(int32_t) BS_ISteamController_GetConnectedControllersSimple(ISteamController* lpSteamController) {
return lpSteamController->GetConnectedControllers(pControllerHandles); return lpSteamController->GetConnectedControllers(pControllerHandles);
} }
DLL(ControllerHandle_t*) BS_ISteamController_GetConnectedControllersSimple_Index(uint32_t index) { DLL(ControllerHandle_t*) BS_ISteamController_GetConnectedControllersSimple_Index(uint32_t index) {
if (index >= STEAM_CONTROLLER_MAX_COUNT) if (index >= STEAM_CONTROLLER_MAX_COUNT)
index = STEAM_CONTROLLER_MAX_COUNT - 1; index = STEAM_CONTROLLER_MAX_COUNT - 1;
return &(pControllerHandles[index]); return &(pControllerHandles[index]);
} }
// Invokes the Steam overlay and brings up the binding screen // Invokes the Steam overlay and brings up the binding screen
// Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode // Returns false is overlay is disabled / unavailable, or the user is not in Big Picture mode
DLL(int32_t) BS_ISteamController_ShowBindingPanel(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle) { DLL(int32_t) BS_ISteamController_ShowBindingPanel(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle) {
return lpSteamController->ShowBindingPanel(*pControllerHandle); return lpSteamController->ShowBindingPanel(*pControllerHandle);
} }
// ACTION SETS // ACTION SETS
// Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls. // Lookup the handle for an Action Set. Best to do this once on startup, and store the handles for all future API calls.
DLL(ControllerActionSetHandle_t*) BS_ISteamController_GetActionSetHandle(ISteamController* lpSteamController, const char* pszActionSetName) { DLL(ControllerActionSetHandle_t*) BS_ISteamController_GetActionSetHandle(ISteamController* lpSteamController, const char* pszActionSetName) {
return new ControllerActionSetHandle_t(lpSteamController->GetActionSetHandle(pszActionSetName)); return new ControllerActionSetHandle_t(lpSteamController->GetActionSetHandle(pszActionSetName));
} }
// Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive') // Reconfigure the controller to use the specified action set (ie 'Menu', 'Walk' or 'Drive')
// This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in // This is cheap, and can be safely called repeatedly. It's often easier to repeatedly call it in
// your state loops, instead of trying to place it in all of your state transitions. // your state loops, instead of trying to place it in all of your state transitions.
DLL(void) BS_ISteamController_ActivateActionSet(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle) { DLL(void) BS_ISteamController_ActivateActionSet(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle) {
lpSteamController->ActivateActionSet(*pControllerHandle, *pActionSetHandle); lpSteamController->ActivateActionSet(*pControllerHandle, *pActionSetHandle);
} }
DLL(ControllerActionSetHandle_t*) BS_ISteamController_GetCurrentActionSet(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle) { DLL(ControllerActionSetHandle_t*) BS_ISteamController_GetCurrentActionSet(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle) {
return new ControllerActionSetHandle_t(lpSteamController->GetCurrentActionSet(*pControllerHandle)); return new ControllerActionSetHandle_t(lpSteamController->GetCurrentActionSet(*pControllerHandle));
} }
// Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls. // Lookup the handle for a digital action. Best to do this once on startup, and store the handles for all future API calls.
DLL(ControllerDigitalActionHandle_t*) BS_ISteamController_GetDigitalActionHandle(ISteamController* lpSteamController, const char* pszActionName) { DLL(ControllerDigitalActionHandle_t*) BS_ISteamController_GetDigitalActionHandle(ISteamController* lpSteamController, const char* pszActionName) {
return new ControllerDigitalActionHandle_t(lpSteamController->GetDigitalActionHandle(pszActionName)); return new ControllerDigitalActionHandle_t(lpSteamController->GetDigitalActionHandle(pszActionName));
} }
// Returns the current state of the supplied digital game action // Returns the current state of the supplied digital game action
DLL(ControllerDigitalActionData_t*) BS_ISteamController_GetDigitalActionData(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerDigitalActionHandle_t* pDigitalActionHandle) { DLL(ControllerDigitalActionData_t*) BS_ISteamController_GetDigitalActionData(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerDigitalActionHandle_t* pDigitalActionHandle) {
return &lpSteamController->GetDigitalActionData(*pControllerHandle, *pDigitalActionHandle); return &lpSteamController->GetDigitalActionData(*pControllerHandle, *pDigitalActionHandle);
} }
// Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.
// originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles
DLL(int32_t) BS_ISteamController_GetDigitalActionOrigins(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle, ControllerDigitalActionHandle_t* pDigitalActionHandle, EControllerActionOrigin *pEControllerActionOrigin) { DLL(int32_t) BS_ISteamController_GetDigitalActionOrigins(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle, ControllerDigitalActionHandle_t* pDigitalActionHandle, EControllerActionOrigin *pEControllerActionOrigin) {
return lpSteamController->GetDigitalActionOrigins(*pControllerHandle, *pActionSetHandle, *pDigitalActionHandle, pEControllerActionOrigin); return lpSteamController->GetDigitalActionOrigins(*pControllerHandle, *pActionSetHandle, *pDigitalActionHandle, pEControllerActionOrigin);
} }
// Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls.
DLL(ControllerAnalogActionHandle_t*) BS_ISteamController_GetAnalogActionHandle(ISteamController* lpSteamController, const char *pszActionName) { DLL(ControllerAnalogActionHandle_t*) BS_ISteamController_GetAnalogActionHandle(ISteamController* lpSteamController, const char *pszActionName) {
return new ControllerAnalogActionHandle_t(lpSteamController->GetAnalogActionHandle(pszActionName)); return new ControllerAnalogActionHandle_t(lpSteamController->GetAnalogActionHandle(pszActionName));
} }
// Returns the current state of these supplied analog game action // Returns the current state of these supplied analog game action
DLL(ControllerAnalogActionData_t*) BS_ISteamController_GetAnalogActionData(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle) { DLL(ControllerAnalogActionData_t*) BS_ISteamController_GetAnalogActionData(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle) {
return &lpSteamController->GetAnalogActionData(*pControllerHandle, *pAnalogActionHandle); return &lpSteamController->GetAnalogActionData(*pControllerHandle, *pAnalogActionHandle);
} }
// Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action.
// originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles
DLL(int32_t) BS_ISteamController_GetAnalogActionOrigins(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle, EControllerActionOrigin *pEControllerActionOrigin) { DLL(int32_t) BS_ISteamController_GetAnalogActionOrigins(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerActionSetHandle_t* pActionSetHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle, EControllerActionOrigin *pEControllerActionOrigin) {
return lpSteamController->GetAnalogActionOrigins(*pControllerHandle, *pActionSetHandle, *pAnalogActionHandle, pEControllerActionOrigin); return lpSteamController->GetAnalogActionOrigins(*pControllerHandle, *pActionSetHandle, *pAnalogActionHandle, pEControllerActionOrigin);
} }
DLL(void) BS_ISteamController_StopAnalogActionMomentum(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle) { DLL(void) BS_ISteamController_StopAnalogActionMomentum(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ControllerAnalogActionHandle_t* pAnalogActionHandle) {
lpSteamController->StopAnalogActionMomentum(*pControllerHandle, *pAnalogActionHandle); lpSteamController->StopAnalogActionMomentum(*pControllerHandle, *pAnalogActionHandle);
} }
// Trigger a haptic pulse on a controller // Trigger a haptic pulse on a controller
DLL(void) BS_ISteamController_TriggerHapticPulse(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ESteamControllerPad eTargetPad, uint32_t usDurationMicroSec) { DLL(void) BS_ISteamController_TriggerHapticPulse(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ESteamControllerPad eTargetPad, uint32_t usDurationMicroSec) {
lpSteamController->TriggerHapticPulse(*pControllerHandle, eTargetPad, (uint16_t)usDurationMicroSec); lpSteamController->TriggerHapticPulse(*pControllerHandle, eTargetPad, (uint16_t)usDurationMicroSec);
} }
DLL(void) BS_ISteamController_TriggerRepeatedHapticPulse(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ESteamControllerPad eTargetPad, uint32_t usDurationMicroSec, uint32_t usOffMicroSec, uint32_t unRepeat, uint32_t nFlags) { DLL(void) BS_ISteamController_TriggerRepeatedHapticPulse(ISteamController* lpSteamController, ControllerHandle_t* pControllerHandle, ESteamControllerPad eTargetPad, uint32_t usDurationMicroSec, uint32_t usOffMicroSec, uint32_t unRepeat, uint32_t nFlags) {
lpSteamController->TriggerRepeatedHapticPulse(*pControllerHandle, eTargetPad, usDurationMicroSec, usOffMicroSec, unRepeat, nFlags); lpSteamController->TriggerRepeatedHapticPulse(*pControllerHandle, eTargetPad, usDurationMicroSec, usOffMicroSec, unRepeat, nFlags);
} }
+425 -425
View File
@@ -1,425 +1,425 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: interface to accessing information about individual users, // Purpose: interface to accessing information about individual users,
// that can be a friend, in a group, on a game server or in a lobby with the local user // that can be a friend, in a group, on a game server or in a lobby with the local user
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamFriends*) BS_SteamFriends() { DLL(ISteamFriends*) BS_SteamFriends() {
return SteamFriends(); return SteamFriends();
} }
// returns the local players name - guaranteed to not be NULL. // returns the local players name - guaranteed to not be NULL.
// this is the same name as on the users community profile page // this is the same name as on the users community profile page
// this is stored in UTF-8 format // this is stored in UTF-8 format
// like all the other interface functions that return a char *, it's important that this pointer is not saved // like all the other interface functions that return a char *, it's important that this pointer is not saved
// off; it will eventually be free'd or re-allocated // off; it will eventually be free'd or re-allocated
DLL(const char*) BS_ISteamFriends_GetPersonaName(ISteamFriends* lpSteamFriends) { DLL(const char*) BS_ISteamFriends_GetPersonaName(ISteamFriends* lpSteamFriends) {
return lpSteamFriends->GetPersonaName(); return lpSteamFriends->GetPersonaName();
} }
// Sets the player name, stores it on the server and publishes the changes to all friends who are online. // Sets the player name, stores it on the server and publishes the changes to all friends who are online.
// Changes take place locally immediately, and a PersonaStateChange_t is posted, presuming success. // Changes take place locally immediately, and a PersonaStateChange_t is posted, presuming success.
// //
// The final results are available through the return value SteamAPICall_t, using SetPersonaNameResponse_t. // The final results are available through the return value SteamAPICall_t, using SetPersonaNameResponse_t.
// //
// If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted // If the name change fails to happen on the server, then an additional global PersonaStateChange_t will be posted
// to change the name back, in addition to the SetPersonaNameResponse_t callback. // to change the name back, in addition to the SetPersonaNameResponse_t callback.
DLL(SteamAPICall_t*) BS_ISteamFriends_SetPersonaName(ISteamFriends* lpSteamFriends, const char* pchPersonaName) { DLL(SteamAPICall_t*) BS_ISteamFriends_SetPersonaName(ISteamFriends* lpSteamFriends, const char* pchPersonaName) {
return new uint64_t(lpSteamFriends->SetPersonaName(pchPersonaName)); return new uint64_t(lpSteamFriends->SetPersonaName(pchPersonaName));
} }
// gets the status of the current user // gets the status of the current user
DLL(int32_t) BS_ISteamFriends_GetPersonaState(ISteamFriends* lpSteamFriends) { DLL(int32_t) BS_ISteamFriends_GetPersonaState(ISteamFriends* lpSteamFriends) {
return lpSteamFriends->GetPersonaState(); return lpSteamFriends->GetPersonaState();
} }
// friend iteration // friend iteration
// takes a set of k_EFriendFlags, and returns the number of users the client knows about who meet that criteria // takes a set of k_EFriendFlags, and returns the number of users the client knows about who meet that criteria
// then GetFriendByIndex() can then be used to return the id's of each of those users // then GetFriendByIndex() can then be used to return the id's of each of those users
DLL(int32_t) BS_ISteamFriends_GetFriendCount(ISteamFriends* lpSteamFriends, int32_t iFriendFlags) { DLL(int32_t) BS_ISteamFriends_GetFriendCount(ISteamFriends* lpSteamFriends, int32_t iFriendFlags) {
return lpSteamFriends->GetFriendCount(iFriendFlags); return lpSteamFriends->GetFriendCount(iFriendFlags);
} }
// returns the steamID of a user // returns the steamID of a user
// iFriend is a index of range [0, GetFriendCount()) // iFriend is a index of range [0, GetFriendCount())
// iFriendsFlags must be the same value as used in GetFriendCount() // iFriendsFlags must be the same value as used in GetFriendCount()
// the returned CSteamID can then be used by all the functions below to access details about the user // the returned CSteamID can then be used by all the functions below to access details about the user
DLL(CSteamID*) BS_ISteamFriends_GetFriendByIndex(ISteamFriends* lpSteamFriends, int32_t iFriend, int32_t iFriendFlags) { DLL(CSteamID*) BS_ISteamFriends_GetFriendByIndex(ISteamFriends* lpSteamFriends, int32_t iFriend, int32_t iFriendFlags) {
return new CSteamID(lpSteamFriends->GetFriendByIndex(iFriend, iFriendFlags)); return new CSteamID(lpSteamFriends->GetFriendByIndex(iFriend, iFriendFlags));
} }
// returns a relationship to a user // returns a relationship to a user
DLL(EFriendRelationship) BS_ISteamFriends_GetFriendRelationship(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(EFriendRelationship) BS_ISteamFriends_GetFriendRelationship(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendRelationship(*steamIDFriend); return lpSteamFriends->GetFriendRelationship(*steamIDFriend);
} }
// returns the current status of the specified user // returns the current status of the specified user
// this will only be known by the local user if steamIDFriend is in their friends list; on the same game server; in a chat room or lobby; or in a small group with the local user // this will only be known by the local user if steamIDFriend is in their friends list; on the same game server; in a chat room or lobby; or in a small group with the local user
DLL(EPersonaState) BS_ISteamFriends_GetFriendPersonaState(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(EPersonaState) BS_ISteamFriends_GetFriendPersonaState(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendPersonaState(*steamIDFriend); return lpSteamFriends->GetFriendPersonaState(*steamIDFriend);
} }
// returns the name another user - guaranteed to not be NULL. // returns the name another user - guaranteed to not be NULL.
// same rules as GetFriendPersonaState() apply as to whether or not the user knowns the name of the other user // same rules as GetFriendPersonaState() apply as to whether or not the user knowns the name of the other user
// note that on first joining a lobby, chat room or game server the local user will not known the name of the other users automatically; that information will arrive asyncronously // note that on first joining a lobby, chat room or game server the local user will not known the name of the other users automatically; that information will arrive asyncronously
DLL(const char*) BS_ISteamFriends_GetFriendPersonaName(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(const char*) BS_ISteamFriends_GetFriendPersonaName(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendPersonaName(*steamIDFriend); return lpSteamFriends->GetFriendPersonaName(*steamIDFriend);
} }
// returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details // returns true if the friend is actually in a game, and fills in pFriendGameInfo with an extra details
DLL(uint32_t) BS_ISteamFriends_GetFriendGamePlayed(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, FriendGameInfo_t *pFriendGameInfo) { DLL(uint32_t) BS_ISteamFriends_GetFriendGamePlayed(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, FriendGameInfo_t *pFriendGameInfo) {
return lpSteamFriends->GetFriendGamePlayed(*steamIDFriend, pFriendGameInfo); return lpSteamFriends->GetFriendGamePlayed(*steamIDFriend, pFriendGameInfo);
} }
// accesses old friends names - returns an empty string when their are no more items in the history // accesses old friends names - returns an empty string when their are no more items in the history
DLL(const char*) BS_ISteamFriends_GetFriendPersonaNameHistory(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iPersonaName) { DLL(const char*) BS_ISteamFriends_GetFriendPersonaNameHistory(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iPersonaName) {
return lpSteamFriends->GetFriendPersonaNameHistory(*steamIDFriend, iPersonaName); return lpSteamFriends->GetFriendPersonaNameHistory(*steamIDFriend, iPersonaName);
} }
// friends steam level // friends steam level
DLL(int32_t) BS_ISteamFriends_GetFriendSteamLevel(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetFriendSteamLevel(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendSteamLevel(*steamIDFriend); return lpSteamFriends->GetFriendSteamLevel(*steamIDFriend);
} }
// Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player. // Returns nickname the current user has set for the specified player. Returns NULL if the no nickname has been set for that player.
DLL(const char*) BS_ISteamFriends_GetPlayerNickname(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriends) { DLL(const char*) BS_ISteamFriends_GetPlayerNickname(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriends) {
const char* nickname = lpSteamFriends->GetPlayerNickname(*steamIDFriends); const char* nickname = lpSteamFriends->GetPlayerNickname(*steamIDFriends);
if (nickname == NULL) { if (nickname == NULL) {
nickname = ""; nickname = "";
} }
return nickname; return nickname;
} }
// friend grouping (tag) apis // friend grouping (tag) apis
// returns the number of friends groups // returns the number of friends groups
DLL(int32_t) BS_ISteamFriends_GetFriendsGroupCount(ISteamFriends* lpSteamFriends) { DLL(int32_t) BS_ISteamFriends_GetFriendsGroupCount(ISteamFriends* lpSteamFriends) {
return lpSteamFriends->GetFriendsGroupCount(); return lpSteamFriends->GetFriendsGroupCount();
} }
// returns the friends group ID for the given index (invalid indices return k_FriendsGroupID_Invalid) // returns the friends group ID for the given index (invalid indices return k_FriendsGroupID_Invalid)
DLL(FriendsGroupID_t) BS_ISteamFriends_GetFriendsGroupIDByIndex(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) { DLL(FriendsGroupID_t) BS_ISteamFriends_GetFriendsGroupIDByIndex(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) {
return lpSteamFriends->GetFriendsGroupIDByIndex(friendsGroupID); return lpSteamFriends->GetFriendsGroupIDByIndex(friendsGroupID);
} }
// returns the name for the given friends group (NULL in the case of invalid friends group IDs) // returns the name for the given friends group (NULL in the case of invalid friends group IDs)
DLL(const char*) BS_ISteamFriends_GetFriendsGroupName(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) { DLL(const char*) BS_ISteamFriends_GetFriendsGroupName(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) {
return lpSteamFriends->GetFriendsGroupName(friendsGroupID); return lpSteamFriends->GetFriendsGroupName(friendsGroupID);
} }
// returns the number of members in a given friends group // returns the number of members in a given friends group
DLL(int32_t) BS_ISteamFriends_GetFriendsGroupMembersCount(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) { DLL(int32_t) BS_ISteamFriends_GetFriendsGroupMembersCount(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID) {
return lpSteamFriends->GetFriendsGroupMembersCount(friendsGroupID); return lpSteamFriends->GetFriendsGroupMembersCount(friendsGroupID);
} }
// gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid // gets up to nMembersCount members of the given friends group, if fewer exist than requested those positions' SteamIDs will be invalid
DLL(void) BS_ISteamFriends_GetFriendsGroupMembersList(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID, CSteamID* pOutSteamIDMembers, int32_t nMembersCount) { DLL(void) BS_ISteamFriends_GetFriendsGroupMembersList(ISteamFriends* lpSteamFriends, FriendsGroupID_t friendsGroupID, CSteamID* pOutSteamIDMembers, int32_t nMembersCount) {
lpSteamFriends->GetFriendsGroupMembersList(friendsGroupID, pOutSteamIDMembers, nMembersCount); lpSteamFriends->GetFriendsGroupMembersList(friendsGroupID, pOutSteamIDMembers, nMembersCount);
} }
// returns true if the specified user meets any of the criteria specified in iFriendFlags // returns true if the specified user meets any of the criteria specified in iFriendFlags
// iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values // iFriendFlags can be the union (binary or, |) of one or more k_EFriendFlags values
DLL(uint32_t) BS_ISteamFriends_HasFriend(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iFriendsFlags) { DLL(uint32_t) BS_ISteamFriends_HasFriend(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iFriendsFlags) {
return lpSteamFriends->HasFriend(*steamIDFriend, iFriendsFlags); return lpSteamFriends->HasFriend(*steamIDFriend, iFriendsFlags);
} }
// clan (group) iteration and access functions // clan (group) iteration and access functions
DLL(int32_t) BS_ISteamFriends_GetClanCount(ISteamFriends* lpSteamFriends) { DLL(int32_t) BS_ISteamFriends_GetClanCount(ISteamFriends* lpSteamFriends) {
return lpSteamFriends->GetClanCount(); return lpSteamFriends->GetClanCount();
} }
DLL(CSteamID*) BS_ISteamFriends_GetClanByIndex(ISteamFriends* lpSteamFriends, int32_t iClan) { DLL(CSteamID*) BS_ISteamFriends_GetClanByIndex(ISteamFriends* lpSteamFriends, int32_t iClan) {
CSteamID* steamID = new CSteamID(lpSteamFriends->GetClanByIndex(iClan)); CSteamID* steamID = new CSteamID(lpSteamFriends->GetClanByIndex(iClan));
return steamID; return steamID;
} }
DLL(const char*) BS_ISteamFriends_GetClanName(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(const char*) BS_ISteamFriends_GetClanName(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return lpSteamFriends->GetClanName(*steamIDClan); return lpSteamFriends->GetClanName(*steamIDClan);
} }
DLL(const char*) BS_ISteamFriends_GetClanTag(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(const char*) BS_ISteamFriends_GetClanTag(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return lpSteamFriends->GetClanTag(*steamIDClan); return lpSteamFriends->GetClanTag(*steamIDClan);
} }
// returns the most recent information we have about what's happening in a clan // returns the most recent information we have about what's happening in a clan
DLL(uint32_t) BS_ISteamFriends_GetClanActivityCounts(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t* pnOnline, int32_t* pnInGame, int32_t* pnChatting) { DLL(uint32_t) BS_ISteamFriends_GetClanActivityCounts(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t* pnOnline, int32_t* pnInGame, int32_t* pnChatting) {
return lpSteamFriends->GetClanActivityCounts(*steamIDClan, pnOnline, pnInGame, pnChatting); return lpSteamFriends->GetClanActivityCounts(*steamIDClan, pnOnline, pnInGame, pnChatting);
} }
// for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest // for clans a user is a member of, they will have reasonably up-to-date information, but for others you'll have to download the info to have the latest
DLL(SteamAPICall_t*) BS_ISteamFriends_DownloadClanActivityCounts(ISteamFriends* lpSteamFriends, CSteamID* psteamIDClans, int32_t cClansToRequest) { DLL(SteamAPICall_t*) BS_ISteamFriends_DownloadClanActivityCounts(ISteamFriends* lpSteamFriends, CSteamID* psteamIDClans, int32_t cClansToRequest) {
return new uint64_t(lpSteamFriends->DownloadClanActivityCounts(psteamIDClans, cClansToRequest)); return new uint64_t(lpSteamFriends->DownloadClanActivityCounts(psteamIDClans, cClansToRequest));
} }
// iterators for getting users in a chat room, lobby, game server or clan // iterators for getting users in a chat room, lobby, game server or clan
// note that large clans that cannot be iterated by the local user // note that large clans that cannot be iterated by the local user
// note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby // note that the current user must be in a lobby to retrieve CSteamIDs of other users in that lobby
// steamIDSource can be the steamID of a group, game server, lobby or chat room // steamIDSource can be the steamID of a group, game server, lobby or chat room
DLL(int32_t) BS_ISteamFriends_GetFriendCountFromSource(ISteamFriends* lpSteamFriends, CSteamID* steamIDSource) { DLL(int32_t) BS_ISteamFriends_GetFriendCountFromSource(ISteamFriends* lpSteamFriends, CSteamID* steamIDSource) {
return lpSteamFriends->GetFriendCountFromSource(*steamIDSource); return lpSteamFriends->GetFriendCountFromSource(*steamIDSource);
} }
DLL(CSteamID*) BS_ISteamFriends_GetFriendFromSourceByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDSource, int32_t iFriend) { DLL(CSteamID*) BS_ISteamFriends_GetFriendFromSourceByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDSource, int32_t iFriend) {
return new CSteamID(lpSteamFriends->GetFriendFromSourceByIndex(*steamIDSource, iFriend)); return new CSteamID(lpSteamFriends->GetFriendFromSourceByIndex(*steamIDSource, iFriend));
} }
// returns true if the local user can see that steamIDUser is a member or in steamIDSource // returns true if the local user can see that steamIDUser is a member or in steamIDSource
DLL(uint32_t) BS_ISteamFriends_IsUserInSource(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, CSteamID* steamIDSource) { DLL(uint32_t) BS_ISteamFriends_IsUserInSource(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, CSteamID* steamIDSource) {
return lpSteamFriends->IsUserInSource(*steamIDUser, *steamIDSource); return lpSteamFriends->IsUserInSource(*steamIDUser, *steamIDSource);
} }
// User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI) // User is in a game pressing the talk button (will suppress the microphone for all voice comms from the Steam friends UI)
DLL(void) BS_ISteamFriends_SetInGameVoiceSpeaking(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, uint32_t bSpeaking) { DLL(void) BS_ISteamFriends_SetInGameVoiceSpeaking(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, uint32_t bSpeaking) {
lpSteamFriends->SetInGameVoiceSpeaking(*steamIDUser, bSpeaking != 0); lpSteamFriends->SetInGameVoiceSpeaking(*steamIDUser, bSpeaking != 0);
} }
// activates the game overlay, with an optional dialog to open // activates the game overlay, with an optional dialog to open
// valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements" // valid options are "Friends", "Community", "Players", "Settings", "OfficialGameGroup", "Stats", "Achievements"
DLL(void) BS_ISteamFriends_ActivateGameOverlay(ISteamFriends* lpSteamFriends, const char* pchDialog) { DLL(void) BS_ISteamFriends_ActivateGameOverlay(ISteamFriends* lpSteamFriends, const char* pchDialog) {
lpSteamFriends->ActivateGameOverlay(pchDialog); lpSteamFriends->ActivateGameOverlay(pchDialog);
} }
// activates game overlay to a specific place // activates game overlay to a specific place
// valid options are // valid options are
// "steamid" - opens the overlay web browser to the specified user or groups profile // "steamid" - opens the overlay web browser to the specified user or groups profile
// "chat" - opens a chat window to the specified user, or joins the group chat // "chat" - opens a chat window to the specified user, or joins the group chat
// "jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API // "jointrade" - opens a window to a Steam Trading session that was started with the ISteamEconomy/StartTrade Web API
// "stats" - opens the overlay web browser to the specified user's stats // "stats" - opens the overlay web browser to the specified user's stats
// "achievements" - opens the overlay web browser to the specified user's achievements // "achievements" - opens the overlay web browser to the specified user's achievements
// "friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend // "friendadd" - opens the overlay in minimal mode prompting the user to add the target user as a friend
// "friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend // "friendremove" - opens the overlay in minimal mode prompting the user to remove the target friend
// "friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite // "friendrequestaccept" - opens the overlay in minimal mode prompting the user to accept an incoming friend invite
// "friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite // "friendrequestignore" - opens the overlay in minimal mode prompting the user to ignore an incoming friend invite
DLL(void) BS_ISteamFriends_ActivateGameOverlayToUser(ISteamFriends* lpSteamFriends, const char* pchDialog, CSteamID* steamID) { DLL(void) BS_ISteamFriends_ActivateGameOverlayToUser(ISteamFriends* lpSteamFriends, const char* pchDialog, CSteamID* steamID) {
lpSteamFriends->ActivateGameOverlayToUser(pchDialog, *steamID); lpSteamFriends->ActivateGameOverlayToUser(pchDialog, *steamID);
} }
// activates game overlay web browser directly to the specified URL // activates game overlay web browser directly to the specified URL
// full address with protocol type is required, e.g. http://www.steamgames.com/ // full address with protocol type is required, e.g. http://www.steamgames.com/
DLL(void) BS_ISteamFriends_ActivateGameOverlayToWebPage(ISteamFriends* lpSteamFriends, const char* pchURL) { DLL(void) BS_ISteamFriends_ActivateGameOverlayToWebPage(ISteamFriends* lpSteamFriends, const char* pchURL) {
lpSteamFriends->ActivateGameOverlayToWebPage(pchURL); lpSteamFriends->ActivateGameOverlayToWebPage(pchURL);
} }
// activates game overlay to store page for app // activates game overlay to store page for app
DLL(void) BS_ISteamFriends_ActivateGameOverlayToStore(ISteamFriends* lpSteamFriends, AppId_t nAppID, EOverlayToStoreFlag eFlag) { DLL(void) BS_ISteamFriends_ActivateGameOverlayToStore(ISteamFriends* lpSteamFriends, AppId_t nAppID, EOverlayToStoreFlag eFlag) {
lpSteamFriends->ActivateGameOverlayToStore(nAppID, eFlag); lpSteamFriends->ActivateGameOverlayToStore(nAppID, eFlag);
} }
// Mark a target user as 'played with'. This is a client-side only feature that requires that the calling user is // Mark a target user as 'played with'. This is a client-side only feature that requires that the calling user is
// in game // in game
DLL(void) BS_ISteamFriends_SetPlayedWith(ISteamFriends* lpSteamFriends, CSteamID* steamIDUserPlayedWith) { DLL(void) BS_ISteamFriends_SetPlayedWith(ISteamFriends* lpSteamFriends, CSteamID* steamIDUserPlayedWith) {
lpSteamFriends->SetPlayedWith(*steamIDUserPlayedWith); lpSteamFriends->SetPlayedWith(*steamIDUserPlayedWith);
} }
// activates game overlay to open the invite dialog. Invitations will be sent for the provided lobby. // activates game overlay to open the invite dialog. Invitations will be sent for the provided lobby.
DLL(void) BS_ISteamFriends_ActivateGameOverlayInviteDialog(ISteamFriends* lpSteamFriends, CSteamID* steamIDLobby) { DLL(void) BS_ISteamFriends_ActivateGameOverlayInviteDialog(ISteamFriends* lpSteamFriends, CSteamID* steamIDLobby) {
lpSteamFriends->ActivateGameOverlayInviteDialog(*steamIDLobby); lpSteamFriends->ActivateGameOverlayInviteDialog(*steamIDLobby);
} }
// gets the small (32x32) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set // gets the small (32x32) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set
DLL(int32_t) BS_ISteamFriends_GetSmallFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetSmallFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetSmallFriendAvatar(*steamIDFriend); return lpSteamFriends->GetSmallFriendAvatar(*steamIDFriend);
} }
// gets the medium (64x64) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set // gets the medium (64x64) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set
DLL(int32_t) BS_ISteamFriends_GetMediumFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetMediumFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetMediumFriendAvatar(*steamIDFriend); return lpSteamFriends->GetMediumFriendAvatar(*steamIDFriend);
} }
// gets the large (184x184) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set // gets the large (184x184) avatar of the current user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if none set
// returns -1 if this image has yet to be loaded, in this case wait for a AvatarImageLoaded_t callback and then call this again // returns -1 if this image has yet to be loaded, in this case wait for a AvatarImageLoaded_t callback and then call this again
DLL(int32_t) BS_ISteamFriends_GetLargeFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetLargeFriendAvatar(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetLargeFriendAvatar(*steamIDFriend); return lpSteamFriends->GetLargeFriendAvatar(*steamIDFriend);
} }
// requests information about a user - persona name & avatar // requests information about a user - persona name & avatar
// if bRequireNameOnly is set, then the avatar of a user isn't downloaded // if bRequireNameOnly is set, then the avatar of a user isn't downloaded
// - it's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them // - it's a lot slower to download avatars and churns the local cache, so if you don't need avatars, don't request them
// if returns true, it means that data is being requested, and a PersonaStateChanged_t callback will be posted when it's retrieved // if returns true, it means that data is being requested, and a PersonaStateChanged_t callback will be posted when it's retrieved
// if returns false, it means that we already have all the details about that user, and functions can be called immediately // if returns false, it means that we already have all the details about that user, and functions can be called immediately
DLL(uint32_t) BS_ISteamFriends_RequestUserInformation(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, uint32_t bRequireNameOnly) { DLL(uint32_t) BS_ISteamFriends_RequestUserInformation(ISteamFriends* lpSteamFriends, CSteamID* steamIDUser, uint32_t bRequireNameOnly) {
return lpSteamFriends->RequestUserInformation(*steamIDUser, bRequireNameOnly != 0); return lpSteamFriends->RequestUserInformation(*steamIDUser, bRequireNameOnly != 0);
} }
// requests information about a clan officer list // requests information about a clan officer list
// when complete, data is returned in ClanOfficerListResponse_t call result // when complete, data is returned in ClanOfficerListResponse_t call result
// this makes available the calls below // this makes available the calls below
// you can only ask about clans that a user is a member of // you can only ask about clans that a user is a member of
// note that this won't download avatars automatically; if you get an officer, // note that this won't download avatars automatically; if you get an officer,
// and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar // and no avatar image is available, call RequestUserInformation( steamID, false ) to download the avatar
DLL(SteamAPICall_t*) BS_ISteamFriends_RequestClanOfficerList(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(SteamAPICall_t*) BS_ISteamFriends_RequestClanOfficerList(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return new uint64_t(lpSteamFriends->RequestClanOfficerList(*steamIDClan)); return new uint64_t(lpSteamFriends->RequestClanOfficerList(*steamIDClan));
} }
// iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed // iteration of clan officers - can only be done when a RequestClanOfficerList() call has completed
// returns the steamID of the clan owner // returns the steamID of the clan owner
DLL(CSteamID*) BS_ISteamFriends_GetClanOwner(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(CSteamID*) BS_ISteamFriends_GetClanOwner(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return new CSteamID(lpSteamFriends->GetClanOwner(*steamIDClan)); return new CSteamID(lpSteamFriends->GetClanOwner(*steamIDClan));
} }
// returns the number of officers in a clan (including the owner) // returns the number of officers in a clan (including the owner)
DLL(int32_t) BS_ISteamFriends_GetClanOfficerCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(int32_t) BS_ISteamFriends_GetClanOfficerCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return lpSteamFriends->GetClanOfficerCount(*steamIDClan); return lpSteamFriends->GetClanOfficerCount(*steamIDClan);
} }
// returns the steamID of a clan officer, by index, of range [0,GetClanOfficerCount) // returns the steamID of a clan officer, by index, of range [0,GetClanOfficerCount)
DLL(CSteamID*) BS_ISteamFriends_GetClanOfficerByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t iOfficer) { DLL(CSteamID*) BS_ISteamFriends_GetClanOfficerByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t iOfficer) {
return new CSteamID(lpSteamFriends->GetClanOfficerByIndex(*steamIDClan, iOfficer)); return new CSteamID(lpSteamFriends->GetClanOfficerByIndex(*steamIDClan, iOfficer));
} }
// if current user is chat restricted, he can't send or receive any text/voice chat messages. // if current user is chat restricted, he can't send or receive any text/voice chat messages.
// the user can't see custom avatars. But the user can be online and send/recv game invites. // the user can't see custom avatars. But the user can be online and send/recv game invites.
// a chat restricted user can't add friends or join any groups. // a chat restricted user can't add friends or join any groups.
DLL(EUserRestriction) BS_ISteamFriends_GetUserRestrictions(ISteamFriends* lpSteamFriends) { DLL(EUserRestriction) BS_ISteamFriends_GetUserRestrictions(ISteamFriends* lpSteamFriends) {
return (EUserRestriction)lpSteamFriends->GetUserRestrictions(); return (EUserRestriction)lpSteamFriends->GetUserRestrictions();
} }
// Rich Presence data is automatically shared between friends who are in the same game // Rich Presence data is automatically shared between friends who are in the same game
// Each user has a set of Key/Value pairs // Each user has a set of Key/Value pairs
// Up to 20 different keys can be set // Up to 20 different keys can be set
// There are two magic keys: // There are two magic keys:
// "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list // "status" - a UTF-8 string that will show up in the 'view game info' dialog in the Steam friends list
// "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game // "connect" - a UTF-8 string that contains the command-line for how a friend can connect to a game
// GetFriendRichPresence() returns an empty string "" if no value is set // GetFriendRichPresence() returns an empty string "" if no value is set
// SetRichPresence() to a NULL or an empty string deletes the key // SetRichPresence() to a NULL or an empty string deletes the key
// You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount() // You can iterate the current set of keys for a friend with GetFriendRichPresenceKeyCount()
// and GetFriendRichPresenceKeyByIndex() (typically only used for debugging) // and GetFriendRichPresenceKeyByIndex() (typically only used for debugging)
DLL(uint32_t) BS_ISteamFriends_SetRichPresence(ISteamFriends* lpSteamFriends, const char* pchKey, const char* pchValue) { DLL(uint32_t) BS_ISteamFriends_SetRichPresence(ISteamFriends* lpSteamFriends, const char* pchKey, const char* pchValue) {
return lpSteamFriends->SetRichPresence(pchKey, pchValue); return lpSteamFriends->SetRichPresence(pchKey, pchValue);
} }
DLL(void) BS_ISteamFriends_ClearRichPresence(ISteamFriends* lpSteamFriends) { DLL(void) BS_ISteamFriends_ClearRichPresence(ISteamFriends* lpSteamFriends) {
lpSteamFriends->ClearRichPresence(); lpSteamFriends->ClearRichPresence();
} }
DLL(const char*) BS_ISteamFriends_GetFriendRichPresence(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char* pchKey) { DLL(const char*) BS_ISteamFriends_GetFriendRichPresence(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char* pchKey) {
return lpSteamFriends->GetFriendRichPresence(*steamIDFriend, pchKey); return lpSteamFriends->GetFriendRichPresence(*steamIDFriend, pchKey);
} }
DLL(int32_t) BS_ISteamFriends_GetFriendRichPresenceKeyCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetFriendRichPresenceKeyCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendRichPresenceKeyCount(*steamIDFriend); return lpSteamFriends->GetFriendRichPresenceKeyCount(*steamIDFriend);
} }
DLL(const char*) BS_ISteamFriends_GetFriendRichPresenceKeyByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iKey) { DLL(const char*) BS_ISteamFriends_GetFriendRichPresenceKeyByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iKey) {
return lpSteamFriends->GetFriendRichPresenceKeyByIndex(*steamIDFriend, iKey); return lpSteamFriends->GetFriendRichPresenceKeyByIndex(*steamIDFriend, iKey);
} }
// Requests rich presence for a specific user. // Requests rich presence for a specific user.
DLL(void) BS_ISteamFriends_RequestFriendRichPresence(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(void) BS_ISteamFriends_RequestFriendRichPresence(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
lpSteamFriends->RequestFriendRichPresence(*steamIDFriend); lpSteamFriends->RequestFriendRichPresence(*steamIDFriend);
} }
// rich invite support // rich invite support
// if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game // if the target accepts the invite, the pchConnectString gets added to the command-line for launching the game
// if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string // if the game is already running, a GameRichPresenceJoinRequested_t callback is posted containing the connect string
// invites can only be sent to friends // invites can only be sent to friends
DLL(uint32_t) BS_ISteamFriends_InviteUserToGame(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char *pchConnectString) { DLL(uint32_t) BS_ISteamFriends_InviteUserToGame(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char *pchConnectString) {
return lpSteamFriends->InviteUserToGame(*steamIDFriend, pchConnectString); return lpSteamFriends->InviteUserToGame(*steamIDFriend, pchConnectString);
} }
// recently-played-with friends iteration // recently-played-with friends iteration
// this iterates the entire list of users recently played with, across games // this iterates the entire list of users recently played with, across games
// GetFriendCoplayTime() returns as a unix time // GetFriendCoplayTime() returns as a unix time
DLL(int32_t) BS_ISteamFriends_GetCoplayFriendCount(ISteamFriends* lpSteamFriends) { DLL(int32_t) BS_ISteamFriends_GetCoplayFriendCount(ISteamFriends* lpSteamFriends) {
return lpSteamFriends->GetCoplayFriendCount(); return lpSteamFriends->GetCoplayFriendCount();
} }
DLL(CSteamID*) BS_ISteamFriends_GetCoplayFriend(ISteamFriends* lpSteamFriends, int32_t iCoplayFriend) { DLL(CSteamID*) BS_ISteamFriends_GetCoplayFriend(ISteamFriends* lpSteamFriends, int32_t iCoplayFriend) {
return new CSteamID(lpSteamFriends->GetCoplayFriend(iCoplayFriend)); return new CSteamID(lpSteamFriends->GetCoplayFriend(iCoplayFriend));
} }
DLL(int32_t) BS_ISteamFriends_GetFriendCoplayTime(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(int32_t) BS_ISteamFriends_GetFriendCoplayTime(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendCoplayTime(*steamIDFriend); return lpSteamFriends->GetFriendCoplayTime(*steamIDFriend);
} }
DLL(AppId_t) BS_ISteamFriends_GetFriendCoplayGame(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) { DLL(AppId_t) BS_ISteamFriends_GetFriendCoplayGame(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend) {
return lpSteamFriends->GetFriendCoplayGame(*steamIDFriend); return lpSteamFriends->GetFriendCoplayGame(*steamIDFriend);
} }
// chat interface for games // chat interface for games
// this allows in-game access to group (clan) chats from in the game // this allows in-game access to group (clan) chats from in the game
// the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay // the behavior is somewhat sophisticated, because the user may or may not be already in the group chat from outside the game or in the overlay
// use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat // use ActivateGameOverlayToUser( "chat", steamIDClan ) to open the in-game overlay version of the chat
DLL(SteamAPICall_t*) BS_ISteamFriends_JoinClanChatRoom(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(SteamAPICall_t*) BS_ISteamFriends_JoinClanChatRoom(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return new SteamAPICall_t(lpSteamFriends->JoinClanChatRoom(*steamIDClan)); return new SteamAPICall_t(lpSteamFriends->JoinClanChatRoom(*steamIDClan));
} }
DLL(uint32_t) BS_ISteamFriends_LeaveClanChatRoom(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(uint32_t) BS_ISteamFriends_LeaveClanChatRoom(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return lpSteamFriends->LeaveClanChatRoom(*steamIDClan); return lpSteamFriends->LeaveClanChatRoom(*steamIDClan);
} }
DLL(int32_t) BS_ISteamFriends_GetClanChatMemberCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) { DLL(int32_t) BS_ISteamFriends_GetClanChatMemberCount(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan) {
return lpSteamFriends->GetClanChatMemberCount(*steamIDClan); return lpSteamFriends->GetClanChatMemberCount(*steamIDClan);
} }
DLL(CSteamID*) BS_ISteamFriends_GetChatMemberByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t iUser) { DLL(CSteamID*) BS_ISteamFriends_GetChatMemberByIndex(ISteamFriends* lpSteamFriends, CSteamID* steamIDClan, int32_t iUser) {
return new CSteamID(lpSteamFriends->GetChatMemberByIndex(*steamIDClan, iUser)); return new CSteamID(lpSteamFriends->GetChatMemberByIndex(*steamIDClan, iUser));
} }
DLL(uint32_t) BS_ISteamFriends_SendClanChatMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, const char *pchText) { DLL(uint32_t) BS_ISteamFriends_SendClanChatMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, const char *pchText) {
return lpSteamFriends->SendClanChatMessage(*steamIDClanChat, pchText); return lpSteamFriends->SendClanChatMessage(*steamIDClanChat, pchText);
} }
DLL(int32_t) BS_ISteamFriends_GetClanChatMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, int32_t iMessage, void* prgchText, int32_t cchTextMax, EChatEntryType* peChatEntryType, CSteamID* psteamidChatter) { DLL(int32_t) BS_ISteamFriends_GetClanChatMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, int32_t iMessage, void* prgchText, int32_t cchTextMax, EChatEntryType* peChatEntryType, CSteamID* psteamidChatter) {
return lpSteamFriends->GetClanChatMessage(*steamIDClanChat, iMessage, prgchText, cchTextMax, peChatEntryType, psteamidChatter); return lpSteamFriends->GetClanChatMessage(*steamIDClanChat, iMessage, prgchText, cchTextMax, peChatEntryType, psteamidChatter);
} }
DLL(uint32_t) BS_ISteamFriends_IsClanChatAdmin(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, CSteamID* steamIDUser) { DLL(uint32_t) BS_ISteamFriends_IsClanChatAdmin(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat, CSteamID* steamIDUser) {
return lpSteamFriends->IsClanChatAdmin(*steamIDClanChat, *steamIDUser); return lpSteamFriends->IsClanChatAdmin(*steamIDClanChat, *steamIDUser);
} }
// interact with the Steam (game overlay / desktop) // interact with the Steam (game overlay / desktop)
DLL(uint32_t) BS_ISteamFriends_IsClanChatWindowOpenInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) { DLL(uint32_t) BS_ISteamFriends_IsClanChatWindowOpenInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) {
return lpSteamFriends->IsClanChatWindowOpenInSteam(*steamIDClanChat); return lpSteamFriends->IsClanChatWindowOpenInSteam(*steamIDClanChat);
} }
DLL(uint32_t) BS_ISteamFriends_OpenClanChatWindowInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) { DLL(uint32_t) BS_ISteamFriends_OpenClanChatWindowInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) {
return lpSteamFriends->OpenClanChatWindowInSteam(*steamIDClanChat); return lpSteamFriends->OpenClanChatWindowInSteam(*steamIDClanChat);
} }
DLL(uint32_t) BS_ISteamFriends_CloseClanChatWindowInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) { DLL(uint32_t) BS_ISteamFriends_CloseClanChatWindowInSteam(ISteamFriends* lpSteamFriends, CSteamID* steamIDClanChat) {
return lpSteamFriends->CloseClanChatWindowInSteam(*steamIDClanChat); return lpSteamFriends->CloseClanChatWindowInSteam(*steamIDClanChat);
} }
// peer-to-peer chat interception // peer-to-peer chat interception
// this is so you can show P2P chats inline in the game // this is so you can show P2P chats inline in the game
DLL(uint32_t) BS_ISteamFriends_SetListenForFriendsMessages(ISteamFriends* lpSteamFriends, uint32_t bInterceptEnabled) { DLL(uint32_t) BS_ISteamFriends_SetListenForFriendsMessages(ISteamFriends* lpSteamFriends, uint32_t bInterceptEnabled) {
return lpSteamFriends->SetListenForFriendsMessages(bInterceptEnabled != 0); return lpSteamFriends->SetListenForFriendsMessages(bInterceptEnabled != 0);
} }
DLL(uint32_t) BS_ISteamFriends_ReplyToFriendMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char* pchMsgToSend) { DLL(uint32_t) BS_ISteamFriends_ReplyToFriendMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, const char* pchMsgToSend) {
return lpSteamFriends->ReplyToFriendMessage(*steamIDFriend, pchMsgToSend); return lpSteamFriends->ReplyToFriendMessage(*steamIDFriend, pchMsgToSend);
} }
DLL(int32_t) BS_ISteamFriends_GetFriendMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iMessageID, void* pvData, int32_t cubData, EChatEntryType* peChatEntryType) { DLL(int32_t) BS_ISteamFriends_GetFriendMessage(ISteamFriends* lpSteamFriends, CSteamID* steamIDFriend, int32_t iMessageID, void* pvData, int32_t cubData, EChatEntryType* peChatEntryType) {
return lpSteamFriends->GetFriendMessage(*steamIDFriend, iMessageID, pvData, cubData, peChatEntryType); return lpSteamFriends->GetFriendMessage(*steamIDFriend, iMessageID, pvData, cubData, peChatEntryType);
} }
// following apis // following apis
DLL(SteamAPICall_t*) BS_ISteamFriends_GetFollowerCount(ISteamFriends* lpSteamFriends, CSteamID* steamID) { DLL(SteamAPICall_t*) BS_ISteamFriends_GetFollowerCount(ISteamFriends* lpSteamFriends, CSteamID* steamID) {
return new SteamAPICall_t(lpSteamFriends->GetFollowerCount(*steamID)); return new SteamAPICall_t(lpSteamFriends->GetFollowerCount(*steamID));
} }
DLL(SteamAPICall_t*) BS_ISteamFriends_IsFollowing(ISteamFriends* lpSteamFriends, CSteamID* steamID) { DLL(SteamAPICall_t*) BS_ISteamFriends_IsFollowing(ISteamFriends* lpSteamFriends, CSteamID* steamID) {
return new SteamAPICall_t(lpSteamFriends->IsFollowing(*steamID)); return new SteamAPICall_t(lpSteamFriends->IsFollowing(*steamID));
} }
DLL(SteamAPICall_t*) BS_ISteamFriends_EnumerateFollowingList(ISteamFriends* lpSteamFriends, uint32_t unStartIndex) { DLL(SteamAPICall_t*) BS_ISteamFriends_EnumerateFollowingList(ISteamFriends* lpSteamFriends, uint32_t unStartIndex) {
return new SteamAPICall_t(lpSteamFriends->EnumerateFollowingList(unStartIndex)); return new SteamAPICall_t(lpSteamFriends->EnumerateFollowingList(unStartIndex));
} }
+370 -370
View File
@@ -1,371 +1,371 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
// Initialize ISteamGameServer interface object, and set server properties which may not be changed. // Initialize ISteamGameServer interface object, and set server properties which may not be changed.
// //
// After calling this function, you should set any additional server parameters, and then // After calling this function, you should set any additional server parameters, and then
// call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn() // call ISteamGameServer::LogOnAnonymous() or ISteamGameServer::LogOn()
// //
// - usSteamPort is the local port used to communicate with the steam servers. // - usSteamPort is the local port used to communicate with the steam servers.
// - usGamePort is the port that clients will connect to for gameplay. // - usGamePort is the port that clients will connect to for gameplay.
// - usQueryPort is the port that will manage server browser related duties and info // - usQueryPort is the port that will manage server browser related duties and info
// pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it // pings from clients. If you pass MASTERSERVERUPDATERPORT_USEGAMESOCKETSHARE for usQueryPort, then it
// will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving // will use "GameSocketShare" mode, which means that the game is responsible for sending and receiving
// UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h. // UDP packets for the master server updater. See references to GameSocketShare in isteamgameserver.h.
// - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the // - The version string is usually in the form x.x.x.x, and is used by the master server to detect when the
// server is out of date. (Only servers with the latest version will be listed.) // server is out of date. (Only servers with the latest version will be listed.)
DLL(uint32_t) BS_SteamGameServer_Init(uint32_t unIP, uint16_t usSteamPort, uint16_t usGamePort, uint16_t usQueryPort, EServerMode eServerMode, const char *pchVersionString) { DLL(uint32_t) BS_SteamGameServer_Init(uint32_t unIP, uint16_t usSteamPort, uint16_t usGamePort, uint16_t usQueryPort, EServerMode eServerMode, const char *pchVersionString) {
return SteamGameServer_Init(unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString); return SteamGameServer_Init(unIP, usSteamPort, usGamePort, usQueryPort, eServerMode, pchVersionString);
} }
DLL(void) BS_SteamGameServer_Shutdown() { DLL(void) BS_SteamGameServer_Shutdown() {
SteamGameServer_Shutdown(); SteamGameServer_Shutdown();
} }
DLL(void) BS_SteamGameServer_RunCallbacks() { DLL(void) BS_SteamGameServer_RunCallbacks() {
SteamGameServer_RunCallbacks(); SteamGameServer_RunCallbacks();
} }
DLL(uint32_t) BS_SteamGameServer_IsSecure() { DLL(uint32_t) BS_SteamGameServer_IsSecure() {
return SteamGameServer_BSecure(); return SteamGameServer_BSecure();
} }
DLL(CSteamID*) BS_SteamGameServer_GetSteamID() { DLL(CSteamID*) BS_SteamGameServer_GetSteamID() {
return new CSteamID(SteamGameServer_GetSteamID()); return new CSteamID(SteamGameServer_GetSteamID());
} }
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
// steamclient.dll private wrapper functions // steamclient.dll private wrapper functions
// //
// The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases // The following functions are part of abstracting API access to the steamclient.dll, but should only be used in very specific cases
//----------------------------------------------------------------------------------------------------------------------------------------------------------// //----------------------------------------------------------------------------------------------------------------------------------------------------------//
DLL(HSteamPipe) BS_SteamGameServer_GetHSteamPipe() { DLL(HSteamPipe) BS_SteamGameServer_GetHSteamPipe() {
return SteamGameServer_GetHSteamPipe(); return SteamGameServer_GetHSteamPipe();
} }
// ISteamGameServer Stuff // ISteamGameServer Stuff
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Functions for authenticating users via Steam to play on a game server // Purpose: Functions for authenticating users via Steam to play on a game server
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamGameServer*) BS_SteamGameServer() { DLL(ISteamGameServer*) BS_SteamGameServer() {
return SteamGameServer(); return SteamGameServer();
} }
// //
// Basic server data. These properties, if set, must be set before before calling LogOn. They // Basic server data. These properties, if set, must be set before before calling LogOn. They
// may not be changed after logged in. // may not be changed after logged in.
// //
/// This is called by SteamGameServer_Init, and you will usually not need to call it directly /// This is called by SteamGameServer_Init, and you will usually not need to call it directly
DLL(uint32_t) BS_ISteamGameServer_InitGameServer(ISteamGameServer* pSteamGameServer, uint32_t unIP, uint16_t usGamePort, uint16_t usQueryPort, uint32_t unFlags, AppId_t nGameAppId, const char *pchVersionString) { DLL(uint32_t) BS_ISteamGameServer_InitGameServer(ISteamGameServer* pSteamGameServer, uint32_t unIP, uint16_t usGamePort, uint16_t usQueryPort, uint32_t unFlags, AppId_t nGameAppId, const char *pchVersionString) {
return pSteamGameServer->InitGameServer(unIP, usGamePort, usQueryPort, unFlags, nGameAppId, pchVersionString); return pSteamGameServer->InitGameServer(unIP, usGamePort, usQueryPort, unFlags, nGameAppId, pchVersionString);
} }
/// Game product identifier. This is currently used by the master server for version checking purposes. /// Game product identifier. This is currently used by the master server for version checking purposes.
/// It's a required field, but will eventually will go away, and the AppID will be used for this purpose. /// It's a required field, but will eventually will go away, and the AppID will be used for this purpose.
DLL(void) BS_ISteamGameServer_SetProduct(ISteamGameServer* pSteamGameServer, const char *pszProduct) { DLL(void) BS_ISteamGameServer_SetProduct(ISteamGameServer* pSteamGameServer, const char *pszProduct) {
pSteamGameServer->SetProduct(pszProduct); pSteamGameServer->SetProduct(pszProduct);
} }
/// Description of the game. This is a required field and is displayed in the steam server browser....for now. /// Description of the game. This is a required field and is displayed in the steam server browser....for now.
/// This is a required field, but it will go away eventually, as the data should be determined from the AppID. /// This is a required field, but it will go away eventually, as the data should be determined from the AppID.
DLL(void) BS_ISteamGameServer_SetGameDescription(ISteamGameServer* pSteamGameServer, const char *pszGameDescription) { DLL(void) BS_ISteamGameServer_SetGameDescription(ISteamGameServer* pSteamGameServer, const char *pszGameDescription) {
pSteamGameServer->SetGameDescription(pszGameDescription); pSteamGameServer->SetGameDescription(pszGameDescription);
} }
/// If your game is a "mod," pass the string that identifies it. The default is an empty string, meaning /// If your game is a "mod," pass the string that identifies it. The default is an empty string, meaning
/// this application is the original game, not a mod. /// this application is the original game, not a mod.
/// ///
/// @see k_cbMaxGameServerGameDir /// @see k_cbMaxGameServerGameDir
DLL(void) BS_ISteamGameServer_SetModDir(ISteamGameServer* pSteamGameServer, const char *pszModDir) { DLL(void) BS_ISteamGameServer_SetModDir(ISteamGameServer* pSteamGameServer, const char *pszModDir) {
pSteamGameServer->SetModDir(pszModDir); pSteamGameServer->SetModDir(pszModDir);
} }
/// Is this is a dedicated server? The default value is false. /// Is this is a dedicated server? The default value is false.
DLL(void) BS_ISteamGameServer_SetDedicatedServer(ISteamGameServer* pSteamGameServer, uint32_t bDedicated) { DLL(void) BS_ISteamGameServer_SetDedicatedServer(ISteamGameServer* pSteamGameServer, uint32_t bDedicated) {
pSteamGameServer->SetDedicatedServer(!!bDedicated); pSteamGameServer->SetDedicatedServer(!!bDedicated);
} }
// //
// Login // Login
// //
/// Begin process to login to a persistent game server account /// Begin process to login to a persistent game server account
/// ///
/// You need to register for callbacks to determine the result of this operation. /// You need to register for callbacks to determine the result of this operation.
/// @see SteamServersConnected_t /// @see SteamServersConnected_t
/// @see SteamServerConnectFailure_t /// @see SteamServerConnectFailure_t
/// @see SteamServersDisconnected_t /// @see SteamServersDisconnected_t
DLL(void) BS_ISteamGameServer_LogOn(ISteamGameServer* pSteamGameServer, const char *pszToken) { DLL(void) BS_ISteamGameServer_LogOn(ISteamGameServer* pSteamGameServer, const char *pszToken) {
pSteamGameServer->LogOn(pszToken); pSteamGameServer->LogOn(pszToken);
} }
/// Login to a generic, anonymous account. /// Login to a generic, anonymous account.
/// ///
/// Note: in previous versions of the SDK, this was automatically called within SteamGameServer_Init, /// Note: in previous versions of the SDK, this was automatically called within SteamGameServer_Init,
/// but this is no longer the case. /// but this is no longer the case.
DLL(void) BS_ISteamGameServer_LogOnAnonymous(ISteamGameServer* pSteamGameServer) { DLL(void) BS_ISteamGameServer_LogOnAnonymous(ISteamGameServer* pSteamGameServer) {
pSteamGameServer->LogOnAnonymous(); pSteamGameServer->LogOnAnonymous();
} }
/// Begin process of logging game server out of steam /// Begin process of logging game server out of steam
DLL(void) BS_ISteamGameServer_LogOff(ISteamGameServer* pSteamGameServer) { DLL(void) BS_ISteamGameServer_LogOff(ISteamGameServer* pSteamGameServer) {
pSteamGameServer->LogOff(); pSteamGameServer->LogOff();
} }
// status functions // status functions
DLL(uint32_t) BS_ISteamGameServer_IsLoggedOn(ISteamGameServer* pSteamGameServer) { DLL(uint32_t) BS_ISteamGameServer_IsLoggedOn(ISteamGameServer* pSteamGameServer) {
return pSteamGameServer->BLoggedOn(); return pSteamGameServer->BLoggedOn();
} }
DLL(uint32_t) BS_ISteamGameServer_IsSecure(ISteamGameServer* pSteamGameServer) { DLL(uint32_t) BS_ISteamGameServer_IsSecure(ISteamGameServer* pSteamGameServer) {
return pSteamGameServer->BSecure(); return pSteamGameServer->BSecure();
} }
DLL(CSteamID*) BS_ISteamGameServer_GetSteamID(ISteamGameServer* pSteamGameServer) { DLL(CSteamID*) BS_ISteamGameServer_GetSteamID(ISteamGameServer* pSteamGameServer) {
return new CSteamID(pSteamGameServer->GetSteamID()); return new CSteamID(pSteamGameServer->GetSteamID());
} }
/// Returns true if the master server has requested a restart. /// Returns true if the master server has requested a restart.
/// Only returns true once per request. /// Only returns true once per request.
DLL(uint32_t) BS_ISteamGameServer_WasRestartRequested(ISteamGameServer* pSteamGameServer) { DLL(uint32_t) BS_ISteamGameServer_WasRestartRequested(ISteamGameServer* pSteamGameServer) {
return pSteamGameServer->WasRestartRequested(); return pSteamGameServer->WasRestartRequested();
} }
// //
// Server state. These properties may be changed at any time. // Server state. These properties may be changed at any time.
// //
/// Max player count that will be reported to server browser and client queries /// Max player count that will be reported to server browser and client queries
DLL(void) BS_ISteamGameServer_SetMaxPlayerCount(ISteamGameServer* pSteamGameServer, int32_t cPlayersMax) { DLL(void) BS_ISteamGameServer_SetMaxPlayerCount(ISteamGameServer* pSteamGameServer, int32_t cPlayersMax) {
pSteamGameServer->SetMaxPlayerCount(cPlayersMax); pSteamGameServer->SetMaxPlayerCount(cPlayersMax);
} }
/// Number of bots. Default value is zero /// Number of bots. Default value is zero
DLL(void) BS_ISteamGameServer_SetBotPlayerCount(ISteamGameServer* pSteamGameServer, int32_t cBotplayers) { DLL(void) BS_ISteamGameServer_SetBotPlayerCount(ISteamGameServer* pSteamGameServer, int32_t cBotplayers) {
pSteamGameServer->SetBotPlayerCount(cBotplayers); pSteamGameServer->SetBotPlayerCount(cBotplayers);
} }
/// Set the name of server as it will appear in the server browser /// Set the name of server as it will appear in the server browser
/// ///
/// @see k_cbMaxGameServerName /// @see k_cbMaxGameServerName
DLL(void) BS_ISteamGameServer_SetServerName(ISteamGameServer* pSteamGameServer, const char *pszServerName) { DLL(void) BS_ISteamGameServer_SetServerName(ISteamGameServer* pSteamGameServer, const char *pszServerName) {
pSteamGameServer->SetServerName(pszServerName); pSteamGameServer->SetServerName(pszServerName);
} }
/// Set name of map to report in the server browser /// Set name of map to report in the server browser
/// ///
/// @see k_cbMaxGameServerName /// @see k_cbMaxGameServerName
DLL(void) BS_ISteamGameServer_SetMapName(ISteamGameServer* pSteamGameServer, const char *pszMapName) { DLL(void) BS_ISteamGameServer_SetMapName(ISteamGameServer* pSteamGameServer, const char *pszMapName) {
pSteamGameServer->SetMapName(pszMapName); pSteamGameServer->SetMapName(pszMapName);
} }
/// Let people know if your server will require a password /// Let people know if your server will require a password
DLL(void) BS_ISteamGameServer_SetPasswordProtected(ISteamGameServer* pSteamGameServer, uint32_t bPasswordProtected) { DLL(void) BS_ISteamGameServer_SetPasswordProtected(ISteamGameServer* pSteamGameServer, uint32_t bPasswordProtected) {
pSteamGameServer->SetPasswordProtected(!!bPasswordProtected); pSteamGameServer->SetPasswordProtected(!!bPasswordProtected);
} }
/// Spectator server. The default value is zero, meaning the service /// Spectator server. The default value is zero, meaning the service
/// is not used. /// is not used.
DLL(void) BS_ISteamGameServer_SetSpectatorPort(ISteamGameServer* pSteamGameServer, uint16_t unSpectatorPort) { DLL(void) BS_ISteamGameServer_SetSpectatorPort(ISteamGameServer* pSteamGameServer, uint16_t unSpectatorPort) {
pSteamGameServer->SetSpectatorPort(unSpectatorPort); pSteamGameServer->SetSpectatorPort(unSpectatorPort);
} }
/// Name of the spectator server. (Only used if spectator port is nonzero.) /// Name of the spectator server. (Only used if spectator port is nonzero.)
/// ///
/// @see k_cbMaxGameServerMapName /// @see k_cbMaxGameServerMapName
DLL(void) BS_ISteamGameServer_SetSpectatorServerName(ISteamGameServer* pSteamGameServer, const char *pszSpectatorServerName) { DLL(void) BS_ISteamGameServer_SetSpectatorServerName(ISteamGameServer* pSteamGameServer, const char *pszSpectatorServerName) {
pSteamGameServer->SetSpectatorServerName(pszSpectatorServerName); pSteamGameServer->SetSpectatorServerName(pszSpectatorServerName);
} }
/// Call this to clear the whole list of key/values that are sent in rules queries. /// Call this to clear the whole list of key/values that are sent in rules queries.
DLL(void) BS_ISteamGameServer_ClearAllKeyValues(ISteamGameServer* pSteamGameServer) { DLL(void) BS_ISteamGameServer_ClearAllKeyValues(ISteamGameServer* pSteamGameServer) {
pSteamGameServer->ClearAllKeyValues(); pSteamGameServer->ClearAllKeyValues();
} }
/// Call this to add/update a key/value pair. /// Call this to add/update a key/value pair.
DLL(void) BS_ISteamGameServer_SetKeyValue(ISteamGameServer* pSteamGameServer, const char *pKey, const char *pValue) { DLL(void) BS_ISteamGameServer_SetKeyValue(ISteamGameServer* pSteamGameServer, const char *pKey, const char *pValue) {
pSteamGameServer->SetKeyValue(pKey, pValue); pSteamGameServer->SetKeyValue(pKey, pValue);
} }
/// Sets a string defining the "gametags" for this server, this is optional, but if it is set /// Sets a string defining the "gametags" for this server, this is optional, but if it is set
/// it allows users to filter in the matchmaking/server-browser interfaces based on the value /// it allows users to filter in the matchmaking/server-browser interfaces based on the value
/// ///
/// @see k_cbMaxGameServerTags /// @see k_cbMaxGameServerTags
DLL(void) BS_ISteamGameServer_SetGameTags(ISteamGameServer* pSteamGameServer, const char *pchGameTags) { DLL(void) BS_ISteamGameServer_SetGameTags(ISteamGameServer* pSteamGameServer, const char *pchGameTags) {
pSteamGameServer->SetGameTags(pchGameTags); pSteamGameServer->SetGameTags(pchGameTags);
} }
/// Sets a string defining the "gamedata" for this server, this is optional, but if it is set /// Sets a string defining the "gamedata" for this server, this is optional, but if it is set
/// it allows users to filter in the matchmaking/server-browser interfaces based on the value /// it allows users to filter in the matchmaking/server-browser interfaces based on the value
/// don't set this unless it actually changes, its only uploaded to the master once (when /// don't set this unless it actually changes, its only uploaded to the master once (when
/// acknowledged) /// acknowledged)
/// ///
/// @see k_cbMaxGameServerGameData /// @see k_cbMaxGameServerGameData
DLL(void) BS_ISteamGameServer_SetGameData(ISteamGameServer* pSteamGameServer, const char *pchGameData) { DLL(void) BS_ISteamGameServer_SetGameData(ISteamGameServer* pSteamGameServer, const char *pchGameData) {
pSteamGameServer->SetGameData(pchGameData); pSteamGameServer->SetGameData(pchGameData);
} }
/// Region identifier. This is an optional field, the default value is empty, meaning the "world" region /// Region identifier. This is an optional field, the default value is empty, meaning the "world" region
DLL(void) BS_ISteamGameServer_SetRegion(ISteamGameServer* pSteamGameServer, const char *pszRegion) { DLL(void) BS_ISteamGameServer_SetRegion(ISteamGameServer* pSteamGameServer, const char *pszRegion) {
pSteamGameServer->SetRegion(pszRegion); pSteamGameServer->SetRegion(pszRegion);
} }
// //
// Player list management / authentication // Player list management / authentication
// //
// Handles receiving a new connection from a Steam user. This call will ask the Steam // Handles receiving a new connection from a Steam user. This call will ask the Steam
// servers to validate the users identity, app ownership, and VAC status. If the Steam servers // servers to validate the users identity, app ownership, and VAC status. If the Steam servers
// are off-line, then it will validate the cached ticket itself which will validate app ownership // are off-line, then it will validate the cached ticket itself which will validate app ownership
// and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection() // and identity. The AuthBlob here should be acquired on the game client using SteamUser()->InitiateGameConnection()
// and must then be sent up to the game server for authentication. // and must then be sent up to the game server for authentication.
// //
// Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL // Return Value: returns true if the users ticket passes basic checks. pSteamIDUser will contain the Steam ID of this user. pSteamIDUser must NOT be NULL
// If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication // If the call succeeds then you should expect a GSClientApprove_t or GSClientDeny_t callback which will tell you whether authentication
// for the user has succeeded or failed (the steamid in the callback will match the one returned by this call) // for the user has succeeded or failed (the steamid in the callback will match the one returned by this call)
DLL(uint32_t) BS_ISteamGameServer_SendUserConnectAndAuthenticate(ISteamGameServer* pSteamGameServer, uint32_t unIPClient, const void *pvAuthBlob, uint32_t cubAuthBlobSize, CSteamID *pSteamIDUser) { DLL(uint32_t) BS_ISteamGameServer_SendUserConnectAndAuthenticate(ISteamGameServer* pSteamGameServer, uint32_t unIPClient, const void *pvAuthBlob, uint32_t cubAuthBlobSize, CSteamID *pSteamIDUser) {
return pSteamGameServer->SendUserConnectAndAuthenticate(unIPClient, pvAuthBlob, cubAuthBlobSize, pSteamIDUser); return pSteamGameServer->SendUserConnectAndAuthenticate(unIPClient, pvAuthBlob, cubAuthBlobSize, pSteamIDUser);
} }
// Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation. // Creates a fake user (ie, a bot) which will be listed as playing on the server, but skips validation.
// //
// Return Value: Returns a SteamID for the user to be tracked with, you should call HandleUserDisconnect() // Return Value: Returns a SteamID for the user to be tracked with, you should call HandleUserDisconnect()
// when this user leaves the server just like you would for a real user. // when this user leaves the server just like you would for a real user.
DLL(CSteamID*) BS_ISteamGameServer_CreateUnauthenticatedUserConnection(ISteamGameServer* pSteamGameServer) { DLL(CSteamID*) BS_ISteamGameServer_CreateUnauthenticatedUserConnection(ISteamGameServer* pSteamGameServer) {
return new CSteamID(pSteamGameServer->CreateUnauthenticatedUserConnection()); return new CSteamID(pSteamGameServer->CreateUnauthenticatedUserConnection());
} }
// Should be called whenever a user leaves our game server, this lets Steam internally // Should be called whenever a user leaves our game server, this lets Steam internally
// track which users are currently on which servers for the purposes of preventing a single // track which users are currently on which servers for the purposes of preventing a single
// account being logged into multiple servers, showing who is currently on a server, etc. // account being logged into multiple servers, showing who is currently on a server, etc.
DLL(void) BS_ISteamGameServer_SendUserDisconnect(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser) { DLL(void) BS_ISteamGameServer_SendUserDisconnect(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser) {
pSteamGameServer->SendUserDisconnect(*pSteamIDUser); pSteamGameServer->SendUserDisconnect(*pSteamIDUser);
} }
// Update the data to be displayed in the server browser and matchmaking interfaces for a user // Update the data to be displayed in the server browser and matchmaking interfaces for a user
// currently connected to the server. For regular users you must call this after you receive a // currently connected to the server. For regular users you must call this after you receive a
// GSUserValidationSuccess callback. // GSUserValidationSuccess callback.
// //
// Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player) // Return Value: true if successful, false if failure (ie, steamIDUser wasn't for an active player)
DLL(uint32_t) BS_ISteamGameServer_UpdateUserData(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser, const char *pchPlayerName, uint32_t uScore) { DLL(uint32_t) BS_ISteamGameServer_UpdateUserData(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser, const char *pchPlayerName, uint32_t uScore) {
return pSteamGameServer->BUpdateUserData(*pSteamIDUser, pchPlayerName, uScore); return pSteamGameServer->BUpdateUserData(*pSteamIDUser, pchPlayerName, uScore);
} }
// New auth system APIs - do not mix with the old auth system APIs. // New auth system APIs - do not mix with the old auth system APIs.
// ---------------------------------------------------------------- // ----------------------------------------------------------------
// Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ). // Retrieve ticket to be sent to the entity who wishes to authenticate you ( using BeginAuthSession API ).
// pcbTicket retrieves the length of the actual ticket. // pcbTicket retrieves the length of the actual ticket.
DLL(HAuthTicket) BS_ISteamGameServer_GetAuthSessionTicket(ISteamGameServer* pSteamGameServer, void *pTicket, int32_t cbMaxTicket, uint32_t *pcbTicket) { DLL(HAuthTicket) BS_ISteamGameServer_GetAuthSessionTicket(ISteamGameServer* pSteamGameServer, void *pTicket, int32_t cbMaxTicket, uint32_t *pcbTicket) {
return pSteamGameServer->GetAuthSessionTicket(pTicket, cbMaxTicket, pcbTicket); return pSteamGameServer->GetAuthSessionTicket(pTicket, cbMaxTicket, pcbTicket);
} }
// Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused // Authenticate ticket ( from GetAuthSessionTicket ) from entity steamID to be sure it is valid and isnt reused
// Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse )
DLL(EBeginAuthSessionResult) BS_ISteamGameServer_BeginAuthSession(ISteamGameServer* pSteamGameServer, const void *pAuthTicket, int32_t cbAuthTicket, CSteamID* pSteamID) { DLL(EBeginAuthSessionResult) BS_ISteamGameServer_BeginAuthSession(ISteamGameServer* pSteamGameServer, const void *pAuthTicket, int32_t cbAuthTicket, CSteamID* pSteamID) {
return pSteamGameServer->BeginAuthSession(pAuthTicket, cbAuthTicket, *pSteamID); return pSteamGameServer->BeginAuthSession(pAuthTicket, cbAuthTicket, *pSteamID);
} }
// Stop tracking started by BeginAuthSession - called when no longer playing game with this entity // Stop tracking started by BeginAuthSession - called when no longer playing game with this entity
DLL(void) BS_ISteamGameServer_EndAuthSession(ISteamGameServer* pSteamGameServer, CSteamID* pSteamID) { DLL(void) BS_ISteamGameServer_EndAuthSession(ISteamGameServer* pSteamGameServer, CSteamID* pSteamID) {
pSteamGameServer->EndAuthSession(*pSteamID); pSteamGameServer->EndAuthSession(*pSteamID);
} }
// Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to // Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to
DLL(void) BS_ISteamGameServer_CancelAuthTicket(ISteamGameServer* pSteamGameServer, HAuthTicket hAuthTicket) { DLL(void) BS_ISteamGameServer_CancelAuthTicket(ISteamGameServer* pSteamGameServer, HAuthTicket hAuthTicket) {
pSteamGameServer->CancelAuthTicket(hAuthTicket); pSteamGameServer->CancelAuthTicket(hAuthTicket);
} }
// After receiving a user's authentication data, and passing it to SendUserConnectAndAuthenticate, use this function // After receiving a user's authentication data, and passing it to SendUserConnectAndAuthenticate, use this function
// to determine if the user owns downloadable content specified by the provided AppID. // to determine if the user owns downloadable content specified by the provided AppID.
DLL(EUserHasLicenseForAppResult) BS_ISteamGameServer_UserHasLicenseForApp(ISteamGameServer* pSteamGameServer, CSteamID* pSteamID, AppId_t appID) { DLL(EUserHasLicenseForAppResult) BS_ISteamGameServer_UserHasLicenseForApp(ISteamGameServer* pSteamGameServer, CSteamID* pSteamID, AppId_t appID) {
return pSteamGameServer->UserHasLicenseForApp(*pSteamID, appID); return pSteamGameServer->UserHasLicenseForApp(*pSteamID, appID);
} }
// Ask if a user in in the specified group, results returns async by GSUserGroupStatus_t // Ask if a user in in the specified group, results returns async by GSUserGroupStatus_t
// returns false if we're not connected to the steam servers and thus cannot ask // returns false if we're not connected to the steam servers and thus cannot ask
DLL(uint32_t) BS_ISteamGameServer_RequestUserGroupStatus(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser, CSteamID* pSteamIDGroup) { DLL(uint32_t) BS_ISteamGameServer_RequestUserGroupStatus(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDUser, CSteamID* pSteamIDGroup) {
return pSteamGameServer->RequestUserGroupStatus(*pSteamIDUser, *pSteamIDGroup); return pSteamGameServer->RequestUserGroupStatus(*pSteamIDUser, *pSteamIDGroup);
} }
// Returns the public IP of the server according to Steam, useful when the server is // Returns the public IP of the server according to Steam, useful when the server is
// behind NAT and you want to advertise its IP in a lobby for other clients to directly // behind NAT and you want to advertise its IP in a lobby for other clients to directly
// connect to // connect to
DLL(uint32_t) BS_ISteamGameServer_GetPublicIP(ISteamGameServer* pSteamGameServer) { DLL(uint32_t) BS_ISteamGameServer_GetPublicIP(ISteamGameServer* pSteamGameServer) {
return pSteamGameServer->GetPublicIP(); return pSteamGameServer->GetPublicIP();
} }
// These are in GameSocketShare mode, where instead of ISteamGameServer creating its own // These are in GameSocketShare mode, where instead of ISteamGameServer creating its own
// socket to talk to the master server on, it lets the game use its socket to forward messages // socket to talk to the master server on, it lets the game use its socket to forward messages
// back and forth. This prevents us from requiring server ops to open up yet another port // back and forth. This prevents us from requiring server ops to open up yet another port
// in their firewalls. // in their firewalls.
// //
// the IP address and port should be in host order, i.e 127.0.0.1 == 0x7f000001 // the IP address and port should be in host order, i.e 127.0.0.1 == 0x7f000001
// These are used when you've elected to multiplex the game server's UDP socket // These are used when you've elected to multiplex the game server's UDP socket
// rather than having the master server updater use its own sockets. // rather than having the master server updater use its own sockets.
// //
// Source games use this to simplify the job of the server admins, so they // Source games use this to simplify the job of the server admins, so they
// don't have to open up more ports on their firewalls. // don't have to open up more ports on their firewalls.
// Call this when a packet that starts with 0xFFFFFFFF comes in. That means // Call this when a packet that starts with 0xFFFFFFFF comes in. That means
// it's for us. // it's for us.
DLL(uint32_t) BS_ISteamGameServer_HandleIncomingPacket(ISteamGameServer* pSteamGameServer, const void *pData, int32_t cbData, uint32_t srcIP, uint16_t srcPort) { DLL(uint32_t) BS_ISteamGameServer_HandleIncomingPacket(ISteamGameServer* pSteamGameServer, const void *pData, int32_t cbData, uint32_t srcIP, uint16_t srcPort) {
return pSteamGameServer->HandleIncomingPacket(pData, cbData, srcIP, srcPort); return pSteamGameServer->HandleIncomingPacket(pData, cbData, srcIP, srcPort);
} }
// AFTER calling HandleIncomingPacket for any packets that came in that frame, call this. // AFTER calling HandleIncomingPacket for any packets that came in that frame, call this.
// This gets a packet that the master server updater needs to send out on UDP. // This gets a packet that the master server updater needs to send out on UDP.
// It returns the length of the packet it wants to send, or 0 if there are no more packets to send. // It returns the length of the packet it wants to send, or 0 if there are no more packets to send.
// Call this each frame until it returns 0. // Call this each frame until it returns 0.
DLL(uint32_t) BS_ISteamGameServer_GetNextOutgoingPacket(ISteamGameServer* pSteamGameServer, void *pOut, int32_t cbMaxOut, uint32_t *pNetAdr, uint16_t *pPort) { DLL(uint32_t) BS_ISteamGameServer_GetNextOutgoingPacket(ISteamGameServer* pSteamGameServer, void *pOut, int32_t cbMaxOut, uint32_t *pNetAdr, uint16_t *pPort) {
return pSteamGameServer->GetNextOutgoingPacket(pOut, cbMaxOut, pNetAdr, pPort); return pSteamGameServer->GetNextOutgoingPacket(pOut, cbMaxOut, pNetAdr, pPort);
} }
// //
// Control heartbeats / advertisement with master server // Control heartbeats / advertisement with master server
// //
// Call this as often as you like to tell the master server updater whether or not // Call this as often as you like to tell the master server updater whether or not
// you want it to be active (default: off). // you want it to be active (default: off).
DLL(void) BS_ISteamGameServer_EnableHeartbeats(ISteamGameServer* pSteamGameServer, uint32_t bActive) { DLL(void) BS_ISteamGameServer_EnableHeartbeats(ISteamGameServer* pSteamGameServer, uint32_t bActive) {
pSteamGameServer->EnableHeartbeats(!!bActive); pSteamGameServer->EnableHeartbeats(!!bActive);
} }
// You usually don't need to modify this. // You usually don't need to modify this.
// Pass -1 to use the default value for iHeartbeatInterval. // Pass -1 to use the default value for iHeartbeatInterval.
// Some mods change this. // Some mods change this.
DLL(void) BS_ISteamGameServer_SetHeartbeatInterval(ISteamGameServer* pSteamGameServer, int32_t iHeartbeatInterval) { DLL(void) BS_ISteamGameServer_SetHeartbeatInterval(ISteamGameServer* pSteamGameServer, int32_t iHeartbeatInterval) {
pSteamGameServer->SetHeartbeatInterval(iHeartbeatInterval); pSteamGameServer->SetHeartbeatInterval(iHeartbeatInterval);
} }
// Force a heartbeat to steam at the next opportunity // Force a heartbeat to steam at the next opportunity
DLL(void) BS_ISteamGameServer_ForceHeartbeat(ISteamGameServer* pSteamGameServer) { DLL(void) BS_ISteamGameServer_ForceHeartbeat(ISteamGameServer* pSteamGameServer) {
pSteamGameServer->ForceHeartbeat(); pSteamGameServer->ForceHeartbeat();
} }
// associate this game server with this clan for the purposes of computing player compat // associate this game server with this clan for the purposes of computing player compat
DLL(SteamAPICall_t*) BS_ISteamGameServer_AssociateWithClan(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDClan) { DLL(SteamAPICall_t*) BS_ISteamGameServer_AssociateWithClan(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDClan) {
return new SteamAPICall_t(pSteamGameServer->AssociateWithClan(*pSteamIDClan)); return new SteamAPICall_t(pSteamGameServer->AssociateWithClan(*pSteamIDClan));
} }
// ask if any of the current players dont want to play with this new player - or vice versa // ask if any of the current players dont want to play with this new player - or vice versa
DLL(SteamAPICall_t*) BS_ISteamGameServer_ComputeNewPlayerCompatibility(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDNewPlayer) { DLL(SteamAPICall_t*) BS_ISteamGameServer_ComputeNewPlayerCompatibility(ISteamGameServer* pSteamGameServer, CSteamID* pSteamIDNewPlayer) {
return new SteamAPICall_t(pSteamGameServer->ComputeNewPlayerCompatibility(*pSteamIDNewPlayer)); return new SteamAPICall_t(pSteamGameServer->ComputeNewPlayerCompatibility(*pSteamIDNewPlayer));
} }
+81 -81
View File
@@ -1,81 +1,81 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Functions for authenticating users via Steam to play on a game server // Purpose: Functions for authenticating users via Steam to play on a game server
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamGameServerStats*) BS_SteamGameServerStats() { DLL(ISteamGameServerStats*) BS_SteamGameServerStats() {
return SteamGameServerStats(); return SteamGameServerStats();
} }
// downloads stats for the user // downloads stats for the user
// returns a GSStatsReceived_t callback when completed // returns a GSStatsReceived_t callback when completed
// if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail // if the user has no stats, GSStatsReceived_t.m_eResult will be set to k_EResultFail
// these stats will only be auto-updated for clients playing on the server. For other // these stats will only be auto-updated for clients playing on the server. For other
// users you'll need to call RequestUserStats() again to refresh any data // users you'll need to call RequestUserStats() again to refresh any data
DLL(SteamAPICall_t*) BS_ISteamGameServerStats_RequestUserStats(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser) { DLL(SteamAPICall_t*) BS_ISteamGameServerStats_RequestUserStats(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser) {
return new SteamAPICall_t(pSteamGameServerStats->RequestUserStats(*steamIDUser)); return new SteamAPICall_t(pSteamGameServerStats->RequestUserStats(*steamIDUser));
} }
// Store the current data on the server, will get a GSStatsStored_t callback when set. // Store the current data on the server, will get a GSStatsStored_t callback when set.
// //
// If the callback has a result of k_EResultInvalidParam, one or more stats // If the callback has a result of k_EResultInvalidParam, one or more stats
// uploaded has been rejected, either because they broke constraints // uploaded has been rejected, either because they broke constraints
// or were out of date. In this case the server sends back updated values. // or were out of date. In this case the server sends back updated values.
// The stats should be re-iterated to keep in sync. // The stats should be re-iterated to keep in sync.
DLL(SteamAPICall_t*) BS_ISteamGameServerStats_StoreUserStats(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser) { DLL(SteamAPICall_t*) BS_ISteamGameServerStats_StoreUserStats(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser) {
return new SteamAPICall_t(pSteamGameServerStats->StoreUserStats(*steamIDUser)); return new SteamAPICall_t(pSteamGameServerStats->StoreUserStats(*steamIDUser));
} }
// requests stat information for a user, usable after a successful call to RequestUserStats() // requests stat information for a user, usable after a successful call to RequestUserStats()
DLL(uint32_t) BS_ISteamGameServerStats_GetUserStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pData) { DLL(uint32_t) BS_ISteamGameServerStats_GetUserStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pData) {
return pSteamGameServerStats->GetUserStat(*steamIDUser, pchName, (int32_t*)pData); return pSteamGameServerStats->GetUserStat(*steamIDUser, pchName, (int32_t*)pData);
} }
DLL(uint32_t) BS_ISteamGameServerStats_GetUserStatF(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, float_t* pData) { DLL(uint32_t) BS_ISteamGameServerStats_GetUserStatF(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, float_t* pData) {
return pSteamGameServerStats->GetUserStat(*steamIDUser, pchName, pData); return pSteamGameServerStats->GetUserStat(*steamIDUser, pchName, pData);
} }
DLL(uint32_t) BS_ISteamGameServerStats_GetUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pbAchieved) { DLL(uint32_t) BS_ISteamGameServerStats_GetUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pbAchieved) {
return pSteamGameServerStats->GetUserAchievement(*steamIDUser, pchName, (bool*)pbAchieved); return pSteamGameServerStats->GetUserAchievement(*steamIDUser, pchName, (bool*)pbAchieved);
} }
// Set / update stats and achievements. // Set / update stats and achievements.
// Note: These updates will work only on stats game servers are allowed to edit and only for // Note: These updates will work only on stats game servers are allowed to edit and only for
// game servers that have been declared as officially controlled by the game creators. // game servers that have been declared as officially controlled by the game creators.
// Set the IP range of your official servers on the Steamworks page // Set the IP range of your official servers on the Steamworks page
DLL(uint32_t) BS_ISteamGameServerStats_SetUserStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t nData) { DLL(uint32_t) BS_ISteamGameServerStats_SetUserStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, uint32_t nData) {
return pSteamGameServerStats->SetUserStat(*steamIDUser, pchName, (int32_t)nData); return pSteamGameServerStats->SetUserStat(*steamIDUser, pchName, (int32_t)nData);
} }
DLL(uint32_t) BS_ISteamGameServerStats_SetUserStatF(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, float_t fData) { DLL(uint32_t) BS_ISteamGameServerStats_SetUserStatF(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName, float_t fData) {
return pSteamGameServerStats->SetUserStat(*steamIDUser, pchName, fData); return pSteamGameServerStats->SetUserStat(*steamIDUser, pchName, fData);
} }
DLL(uint32_t) BS_ISteamGameServerStats_UpdateUserAvgRateStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char *pchName, float flCountThisSession, double* pdSessionLength) { DLL(uint32_t) BS_ISteamGameServerStats_UpdateUserAvgRateStat(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char *pchName, float flCountThisSession, double* pdSessionLength) {
return pSteamGameServerStats->UpdateUserAvgRateStat(*steamIDUser, pchName, flCountThisSession, *pdSessionLength); return pSteamGameServerStats->UpdateUserAvgRateStat(*steamIDUser, pchName, flCountThisSession, *pdSessionLength);
} }
DLL(uint32_t) BS_ISteamGameServerStats_SetUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName) { DLL(uint32_t) BS_ISteamGameServerStats_SetUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName) {
return pSteamGameServerStats->SetUserAchievement(*steamIDUser, pchName); return pSteamGameServerStats->SetUserAchievement(*steamIDUser, pchName);
} }
DLL(uint32_t) BS_ISteamGameServerStats_ClearUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName) { DLL(uint32_t) BS_ISteamGameServerStats_ClearUserAchievement(ISteamGameServerStats* pSteamGameServerStats, CSteamID* steamIDUser, const char* pchName) {
return pSteamGameServerStats->ClearUserAchievement(*steamIDUser, pchName); return pSteamGameServerStats->ClearUserAchievement(*steamIDUser, pchName);
} }
+208 -208
View File
@@ -1,209 +1,209 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
#include "SteamworksSDK/public/steam/isteamhtmlsurface.h" #include "SteamworksSDK/public/steam/isteamhtmlsurface.h"
DLL(ISteamHTMLSurface*) BS_SteamHTMLSurface() { DLL(ISteamHTMLSurface*) BS_SteamHTMLSurface() {
return SteamHTMLSurface(); return SteamHTMLSurface();
} }
// Must call init and shutdown when starting/ending use of the interface // Must call init and shutdown when starting/ending use of the interface
DLL(uint32_t) BS_ISteamHTMLSurface_Init(ISteamHTMLSurface* pSteamHTMLSurface) { DLL(uint32_t) BS_ISteamHTMLSurface_Init(ISteamHTMLSurface* pSteamHTMLSurface) {
return pSteamHTMLSurface->Init(); return pSteamHTMLSurface->Init();
} }
DLL(uint32_t) BS_ISteamHTMLSurface_Shutdown(ISteamHTMLSurface* pSteamHTMLSurface) { DLL(uint32_t) BS_ISteamHTMLSurface_Shutdown(ISteamHTMLSurface* pSteamHTMLSurface) {
return pSteamHTMLSurface->Shutdown(); return pSteamHTMLSurface->Shutdown();
} }
// Create a browser object for display of a html page, when creation is complete the call handle // Create a browser object for display of a html page, when creation is complete the call handle
// will return a HTML_BrowserReady_t callback for the HHTMLBrowser of your new browser. // will return a HTML_BrowserReady_t callback for the HHTMLBrowser of your new browser.
// The user agent string is a substring to be added to the general user agent string so you can // The user agent string is a substring to be added to the general user agent string so you can
// identify your client on web servers. // identify your client on web servers.
// The userCSS string lets you apply a CSS style sheet to every displayed page, leave null if // The userCSS string lets you apply a CSS style sheet to every displayed page, leave null if
// you do not require this functionality. // you do not require this functionality.
DLL(SteamAPICall_t*) BS_ISteamHTMLSurface_CreateBrowser(ISteamHTMLSurface* pSteamHTMLSurface, const char* pchUserAgent, const char* pchUserCSS) { DLL(SteamAPICall_t*) BS_ISteamHTMLSurface_CreateBrowser(ISteamHTMLSurface* pSteamHTMLSurface, const char* pchUserAgent, const char* pchUserCSS) {
return new SteamAPICall_t(pSteamHTMLSurface->CreateBrowser(pchUserAgent, pchUserCSS)); return new SteamAPICall_t(pSteamHTMLSurface->CreateBrowser(pchUserAgent, pchUserCSS));
} }
// Call this when you are done with a html surface, this lets us free the resources being used by it // Call this when you are done with a html surface, this lets us free the resources being used by it
DLL(void) BS_ISteamHTMLSurface_RemoveBrowser(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_RemoveBrowser(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->RemoveBrowser(unBrowserHandle); pSteamHTMLSurface->RemoveBrowser(unBrowserHandle);
} }
// Navigate to this URL, results in a HTML_StartRequest_t as the request commences // Navigate to this URL, results in a HTML_StartRequest_t as the request commences
DLL(void) BS_ISteamHTMLSurface_LoadURL(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchURL, const char* pchPostData) { DLL(void) BS_ISteamHTMLSurface_LoadURL(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchURL, const char* pchPostData) {
pSteamHTMLSurface->LoadURL(unBrowserHandle, pchURL, pchPostData); pSteamHTMLSurface->LoadURL(unBrowserHandle, pchURL, pchPostData);
} }
// Tells the surface the size in pixels to display the surface // Tells the surface the size in pixels to display the surface
DLL(void) BS_ISteamHTMLSurface_SetSize(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32_t unWidth, uint32_t unHeight) { DLL(void) BS_ISteamHTMLSurface_SetSize(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32_t unWidth, uint32_t unHeight) {
pSteamHTMLSurface->SetSize(unBrowserHandle, unWidth, unHeight); pSteamHTMLSurface->SetSize(unBrowserHandle, unWidth, unHeight);
} }
// Stop the load of the current html page // Stop the load of the current html page
DLL(void) BS_ISteamHTMLSurface_StopLoad(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_StopLoad(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->StopLoad(unBrowserHandle); pSteamHTMLSurface->StopLoad(unBrowserHandle);
} }
// Reload (most likely from local cache) the current page // Reload (most likely from local cache) the current page
DLL(void) BS_ISteamHTMLSurface_Reload(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_Reload(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->Reload(unBrowserHandle); pSteamHTMLSurface->Reload(unBrowserHandle);
} }
// navigate back in the page history // navigate back in the page history
DLL(void) BS_ISteamHTMLSurface_GoBack(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_GoBack(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->GoBack(unBrowserHandle); pSteamHTMLSurface->GoBack(unBrowserHandle);
} }
// navigate forward in the page history // navigate forward in the page history
DLL(void) BS_ISteamHTMLSurface_GoForward(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_GoForward(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->GoForward(unBrowserHandle); pSteamHTMLSurface->GoForward(unBrowserHandle);
} }
// add this header to any url requests from this browser // add this header to any url requests from this browser
DLL(void) BS_ISteamHTMLSurface_AddHeader(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchKey, const char* pchValue) { DLL(void) BS_ISteamHTMLSurface_AddHeader(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchKey, const char* pchValue) {
pSteamHTMLSurface->AddHeader(unBrowserHandle, pchKey, pchValue); pSteamHTMLSurface->AddHeader(unBrowserHandle, pchKey, pchValue);
} }
// run this javascript script in the currently loaded page // run this javascript script in the currently loaded page
DLL(void) BS_ISteamHTMLSurface_ExecuteJavascript(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchScript) { DLL(void) BS_ISteamHTMLSurface_ExecuteJavascript(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char* pchScript) {
pSteamHTMLSurface->ExecuteJavascript(unBrowserHandle, pchScript); pSteamHTMLSurface->ExecuteJavascript(unBrowserHandle, pchScript);
} }
// Mouse click and mouse movement commands // Mouse click and mouse movement commands
DLL(void) BS_ISteamHTMLSurface_MouseUp(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) { DLL(void) BS_ISteamHTMLSurface_MouseUp(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) {
pSteamHTMLSurface->MouseUp(unBrowserHandle, eMouseButton); pSteamHTMLSurface->MouseUp(unBrowserHandle, eMouseButton);
} }
DLL(void) BS_ISteamHTMLSurface_MouseDown(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) { DLL(void) BS_ISteamHTMLSurface_MouseDown(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) {
pSteamHTMLSurface->MouseDown(unBrowserHandle, eMouseButton); pSteamHTMLSurface->MouseDown(unBrowserHandle, eMouseButton);
} }
DLL(void) BS_ISteamHTMLSurface_MouseDoubleClick(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) { DLL(void) BS_ISteamHTMLSurface_MouseDoubleClick(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, ISteamHTMLSurface::EHTMLMouseButton eMouseButton) {
pSteamHTMLSurface->MouseDoubleClick(unBrowserHandle, eMouseButton); pSteamHTMLSurface->MouseDoubleClick(unBrowserHandle, eMouseButton);
} }
// x and y are relative to the HTML bounds // x and y are relative to the HTML bounds
DLL(void) BS_ISteamHTMLSurface_MouseMove(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int32_t x, int32_t y) { DLL(void) BS_ISteamHTMLSurface_MouseMove(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int32_t x, int32_t y) {
pSteamHTMLSurface->MouseMove(unBrowserHandle, x, y); pSteamHTMLSurface->MouseMove(unBrowserHandle, x, y);
} }
// nDelta is pixels of scroll // nDelta is pixels of scroll
DLL(void) BS_ISteamHTMLSurface_MouseWheel(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int32_t nDelta) { DLL(void) BS_ISteamHTMLSurface_MouseWheel(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int32_t nDelta) {
pSteamHTMLSurface->MouseWheel(unBrowserHandle, nDelta); pSteamHTMLSurface->MouseWheel(unBrowserHandle, nDelta);
} }
// keyboard interactions, native keycode is the virtual key code value from your OS // keyboard interactions, native keycode is the virtual key code value from your OS
DLL(void) BS_ISteamHTMLSurface_KeyDown(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) { DLL(void) BS_ISteamHTMLSurface_KeyDown(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) {
pSteamHTMLSurface->KeyDown(unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers); pSteamHTMLSurface->KeyDown(unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers);
} }
DLL(void) BS_ISteamHTMLSurface_KeyUp(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) { DLL(void) BS_ISteamHTMLSurface_KeyUp(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) {
pSteamHTMLSurface->KeyUp(unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers); pSteamHTMLSurface->KeyUp(unBrowserHandle, nNativeKeyCode, eHTMLKeyModifiers);
} }
// cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press) // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press)
DLL(void) BS_ISteamHTMLSurface_KeyChar(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) { DLL(void) BS_ISteamHTMLSurface_KeyChar(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, ISteamHTMLSurface::EHTMLKeyModifiers eHTMLKeyModifiers) {
pSteamHTMLSurface->KeyChar(unBrowserHandle, cUnicodeChar, eHTMLKeyModifiers); pSteamHTMLSurface->KeyChar(unBrowserHandle, cUnicodeChar, eHTMLKeyModifiers);
} }
// programmatically scroll this many pixels on the page // programmatically scroll this many pixels on the page
DLL(void) BS_ISteamHTMLSurface_SetHorizontalScroll(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll) { DLL(void) BS_ISteamHTMLSurface_SetHorizontalScroll(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll) {
pSteamHTMLSurface->SetHorizontalScroll(unBrowserHandle, nAbsolutePixelScroll); pSteamHTMLSurface->SetHorizontalScroll(unBrowserHandle, nAbsolutePixelScroll);
} }
DLL(void) BS_ISteamHTMLSurface_SetVerticalScroll(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll) { DLL(void) BS_ISteamHTMLSurface_SetVerticalScroll(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll) {
pSteamHTMLSurface->SetVerticalScroll(unBrowserHandle, nAbsolutePixelScroll); pSteamHTMLSurface->SetVerticalScroll(unBrowserHandle, nAbsolutePixelScroll);
} }
// tell the html control if it has key focus currently, controls showing the I-beam cursor in text controls amongst other things // tell the html control if it has key focus currently, controls showing the I-beam cursor in text controls amongst other things
DLL(void) BS_ISteamHTMLSurface_SetKeyFocus(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus) { DLL(void) BS_ISteamHTMLSurface_SetKeyFocus(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bHasKeyFocus) {
pSteamHTMLSurface->SetKeyFocus(unBrowserHandle, bHasKeyFocus); pSteamHTMLSurface->SetKeyFocus(unBrowserHandle, bHasKeyFocus);
} }
// open the current pages html code in the local editor of choice, used for debugging // open the current pages html code in the local editor of choice, used for debugging
DLL(void) BS_ISteamHTMLSurface_ViewSource(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_ViewSource(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->ViewSource(unBrowserHandle); pSteamHTMLSurface->ViewSource(unBrowserHandle);
} }
// copy the currently selected text on the html page to the local clipboard // copy the currently selected text on the html page to the local clipboard
DLL(void) BS_ISteamHTMLSurface_CopyToClipboard(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_CopyToClipboard(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->CopyToClipboard(unBrowserHandle); pSteamHTMLSurface->CopyToClipboard(unBrowserHandle);
} }
// paste from the local clipboard to the current html page // paste from the local clipboard to the current html page
DLL(void) BS_ISteamHTMLSurface_PasteFromClipboard(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_PasteFromClipboard(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->PasteFromClipboard(unBrowserHandle); pSteamHTMLSurface->PasteFromClipboard(unBrowserHandle);
} }
// find this string in the browser, if bCurrentlyInFind is true then instead cycle to the next matching element // find this string in the browser, if bCurrentlyInFind is true then instead cycle to the next matching element
DLL(void) BS_ISteamHTMLSurface_Find(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char *pchSearchStr, bool bCurrentlyInFind, bool bReverse) { DLL(void) BS_ISteamHTMLSurface_Find(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char *pchSearchStr, bool bCurrentlyInFind, bool bReverse) {
pSteamHTMLSurface->Find(unBrowserHandle, pchSearchStr, bCurrentlyInFind, bReverse); pSteamHTMLSurface->Find(unBrowserHandle, pchSearchStr, bCurrentlyInFind, bReverse);
} }
// cancel a currently running find // cancel a currently running find
DLL(void) BS_ISteamHTMLSurface_StopFind(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) { DLL(void) BS_ISteamHTMLSurface_StopFind(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle) {
pSteamHTMLSurface->StopFind(unBrowserHandle); pSteamHTMLSurface->StopFind(unBrowserHandle);
} }
// return details about the link at position x,y on the current page // return details about the link at position x,y on the current page
DLL(void) BS_ISteamHTMLSurface_GetLinkAtPosition(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int x, int y) { DLL(void) BS_ISteamHTMLSurface_GetLinkAtPosition(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, int x, int y) {
pSteamHTMLSurface->GetLinkAtPosition(unBrowserHandle, x, y); pSteamHTMLSurface->GetLinkAtPosition(unBrowserHandle, x, y);
} }
// set a webcookie for the hostname in question // set a webcookie for the hostname in question
DLL(void) BS_ISteamHTMLSurface_SetCookie(ISteamHTMLSurface* pSteamHTMLSurface, const char *pchHostname, const char *pchKey, const char *pchValue, const char *pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly) { DLL(void) BS_ISteamHTMLSurface_SetCookie(ISteamHTMLSurface* pSteamHTMLSurface, const char *pchHostname, const char *pchKey, const char *pchValue, const char *pchPath, RTime32 nExpires, bool bSecure, bool bHTTPOnly) {
pSteamHTMLSurface->SetCookie(pchHostname, pchKey, pchValue, pchPath, nExpires, bSecure, bHTTPOnly); pSteamHTMLSurface->SetCookie(pchHostname, pchKey, pchValue, pchPath, nExpires, bSecure, bHTTPOnly);
} }
// Zoom the current page by flZoom ( from 0.0 to 2.0, so to zoom to 120% use 1.2 ), zooming around point X,Y in the page (use 0,0 if you don't care) // Zoom the current page by flZoom ( from 0.0 to 2.0, so to zoom to 120% use 1.2 ), zooming around point X,Y in the page (use 0,0 if you don't care)
DLL(void) BS_ISteamHTMLSurface_SetPageScaleFactor(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY) { DLL(void) BS_ISteamHTMLSurface_SetPageScaleFactor(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY) {
pSteamHTMLSurface->SetPageScaleFactor(unBrowserHandle, flZoom, nPointX, nPointY); pSteamHTMLSurface->SetPageScaleFactor(unBrowserHandle, flZoom, nPointX, nPointY);
} }
// Enable/disable low-resource background mode, where javascript and repaint timers are throttled, resources are // Enable/disable low-resource background mode, where javascript and repaint timers are throttled, resources are
// more aggressively purged from memory, and audio/video elements are paused. When background mode is enabled, // more aggressively purged from memory, and audio/video elements are paused. When background mode is enabled,
// all HTML5 video and audio objects will execute ".pause()" and gain the property "._steam_background_paused = 1". // all HTML5 video and audio objects will execute ".pause()" and gain the property "._steam_background_paused = 1".
// When background mode is disabled, any video or audio objects with that property will resume with ".play()". // When background mode is disabled, any video or audio objects with that property will resume with ".play()".
DLL(void) BS_ISteamHTMLSurface_SetBackgroundMode(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bBackgroundMode) { DLL(void) BS_ISteamHTMLSurface_SetBackgroundMode(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bBackgroundMode) {
pSteamHTMLSurface->SetBackgroundMode(unBrowserHandle, bBackgroundMode); pSteamHTMLSurface->SetBackgroundMode(unBrowserHandle, bBackgroundMode);
} }
// CALLBACKS // CALLBACKS
// //
// These set of functions are used as responses to callback requests // These set of functions are used as responses to callback requests
// //
// You MUST call this in response to a HTML_StartRequest_t callback // You MUST call this in response to a HTML_StartRequest_t callback
// Set bAllowed to true to allow this navigation, false to cancel it and stay // Set bAllowed to true to allow this navigation, false to cancel it and stay
// on the current page. You can use this feature to limit the valid pages // on the current page. You can use this feature to limit the valid pages
// allowed in your HTML surface. // allowed in your HTML surface.
DLL(void) BS_ISteamHTMLSurface_AllowStartRequest(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bAllowed) { DLL(void) BS_ISteamHTMLSurface_AllowStartRequest(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bAllowed) {
pSteamHTMLSurface->AllowStartRequest(unBrowserHandle, bAllowed); pSteamHTMLSurface->AllowStartRequest(unBrowserHandle, bAllowed);
} }
// You MUST call this in response to a HTML_JSAlert_t or HTML_JSConfirm_t callback // You MUST call this in response to a HTML_JSAlert_t or HTML_JSConfirm_t callback
// Set bResult to true for the OK option of a confirm, use false otherwise // Set bResult to true for the OK option of a confirm, use false otherwise
DLL(void) BS_ISteamHTMLSurface_JSDialogResponse(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bResult) { DLL(void) BS_ISteamHTMLSurface_JSDialogResponse(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, bool bResult) {
pSteamHTMLSurface->JSDialogResponse(unBrowserHandle, bResult); pSteamHTMLSurface->JSDialogResponse(unBrowserHandle, bResult);
} }
// You MUST call this in response to a HTML_FileOpenDialog_t callback // You MUST call this in response to a HTML_FileOpenDialog_t callback
DLL(void) BS_ISteamHTMLSurface_FileLoadDialogResponse(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles) { DLL(void) BS_ISteamHTMLSurface_FileLoadDialogResponse(ISteamHTMLSurface* pSteamHTMLSurface, HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles) {
pSteamHTMLSurface->FileLoadDialogResponse(unBrowserHandle, pchSelectedFiles); pSteamHTMLSurface->FileLoadDialogResponse(unBrowserHandle, pchSelectedFiles);
} }
+188 -188
View File
@@ -1,189 +1,189 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: interface to http client // Purpose: interface to http client
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamHTTP*) BS_HTTP() { DLL(ISteamHTTP*) BS_HTTP() {
return SteamHTTP(); return SteamHTTP();
} }
DLL(ISteamHTTP*) BS_GameServerHTTP() { DLL(ISteamHTTP*) BS_GameServerHTTP() {
return SteamGameServerHTTP(); return SteamGameServerHTTP();
} }
// Initializes a new HTTP request, returning a handle to use in further operations on it. Requires // Initializes a new HTTP request, returning a handle to use in further operations on it. Requires
// the method (GET or POST) and the absolute URL for the request. Both http and https are supported, // the method (GET or POST) and the absolute URL for the request. Both http and https are supported,
// so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/ // so this string must start with http:// or https:// and should look like http://store.steampowered.com/app/250/
// or such. // or such.
DLL(HTTPRequestHandle) BS_ISteamHTTP_CreateHTTPRequest(ISteamHTTP* pThis, EHTTPMethod eHTTPRequestMethod, const char* cAbsoluteUrl) { DLL(HTTPRequestHandle) BS_ISteamHTTP_CreateHTTPRequest(ISteamHTTP* pThis, EHTTPMethod eHTTPRequestMethod, const char* cAbsoluteUrl) {
return pThis->CreateHTTPRequest(eHTTPRequestMethod, cAbsoluteUrl); return pThis->CreateHTTPRequest(eHTTPRequestMethod, cAbsoluteUrl);
} }
// Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after // Set a context value for the request, which will be returned in the HTTPRequestCompleted_t callback after
// sending the request. This is just so the caller can easily keep track of which callbacks go with which request data. // sending the request. This is just so the caller can easily keep track of which callbacks go with which request data.
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestContextValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint64_t* plContextValue) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestContextValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint64_t* plContextValue) {
return pThis->SetHTTPRequestContextValue(hRequest, *plContextValue); return pThis->SetHTTPRequestContextValue(hRequest, *plContextValue);
} }
// Set a timeout in seconds for the HTTP request, must be called prior to sending the request. Default // Set a timeout in seconds for the HTTP request, must be called prior to sending the request. Default
// timeout is 60 seconds if you don't call this. Returns false if the handle is invalid, or the request // timeout is 60 seconds if you don't call this. Returns false if the handle is invalid, or the request
// has already been sent. // has already been sent.
DLL(int32_t) BS_ISteamHTTP_SetHTTPNetworkActivityTimeout(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds) { DLL(int32_t) BS_ISteamHTTP_SetHTTPNetworkActivityTimeout(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 unTimeoutSeconds) {
return pThis->SetHTTPRequestNetworkActivityTimeout(hRequest, unTimeoutSeconds); return pThis->SetHTTPRequestNetworkActivityTimeout(hRequest, unTimeoutSeconds);
} }
// Set a request header value for the request, must be called prior to sending the request. Will // Set a request header value for the request, must be called prior to sending the request. Will
// return false if the handle is invalid or the request is already sent. // return false if the handle is invalid or the request is already sent.
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestHeaderValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, const char *pchHeaderValue) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestHeaderValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, const char *pchHeaderValue) {
return pThis->SetHTTPRequestHeaderValue(hRequest, pchHeaderName, pchHeaderValue); return pThis->SetHTTPRequestHeaderValue(hRequest, pchHeaderName, pchHeaderValue);
} }
// Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified // Set a GET or POST parameter value on the request, which is set will depend on the EHTTPMethod specified
// when creating the request. Must be called prior to sending the request. Will return false if the // when creating the request. Must be called prior to sending the request. Will return false if the
// handle is invalid or the request is already sent. // handle is invalid or the request is already sent.
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchParamName, const char *pchParamValue) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestGetOrPostParameter(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchParamName, const char *pchParamValue) {
return pThis->SetHTTPRequestGetOrPostParameter(hRequest, pchParamName, pchParamValue); return pThis->SetHTTPRequestGetOrPostParameter(hRequest, pchParamName, pchParamValue);
} }
// Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on // Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on
// asynchronous response via callback. // asynchronous response via callback.
// //
// Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control // Note: If the user is in offline mode in Steam, then this will add a only-if-cached cache-control
// header and only do a local cache lookup rather than sending any actual remote request. // header and only do a local cache lookup rather than sending any actual remote request.
DLL(int32_t) BS_ISteamHTTP_SendHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle) { DLL(int32_t) BS_ISteamHTTP_SendHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle) {
return pThis->SendHTTPRequest(hRequest, pCallHandle); return pThis->SendHTTPRequest(hRequest, pCallHandle);
} }
// Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on // Sends the HTTP request, will return false on a bad handle, otherwise use SteamCallHandle to wait on
// asynchronous response via callback for completion, and listen for HTTPRequestHeadersReceived_t and // asynchronous response via callback for completion, and listen for HTTPRequestHeadersReceived_t and
// HTTPRequestDataReceived_t callbacks while streaming. // HTTPRequestDataReceived_t callbacks while streaming.
DLL(int32_t) BS_ISteamHTTP_SendHTTPRequestAndStreamResponse(ISteamHTTP* pThis, HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle) { DLL(int32_t) BS_ISteamHTTP_SendHTTPRequestAndStreamResponse(ISteamHTTP* pThis, HTTPRequestHandle hRequest, SteamAPICall_t *pCallHandle) {
return pThis->SendHTTPRequestAndStreamResponse(hRequest, pCallHandle); return pThis->SendHTTPRequestAndStreamResponse(hRequest, pCallHandle);
} }
// Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move // Defers a request you have sent, the actual HTTP client code may have many requests queued, and this will move
// the specified request to the tail of the queue. Returns false on invalid handle, or if the request is not yet sent. // the specified request to the tail of the queue. Returns false on invalid handle, or if the request is not yet sent.
DLL(int32_t) BS_ISteamHTTP_DeferHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) { DLL(int32_t) BS_ISteamHTTP_DeferHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) {
return pThis->DeferHTTPRequest(hRequest); return pThis->DeferHTTPRequest(hRequest);
} }
// Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move // Prioritizes a request you have sent, the actual HTTP client code may have many requests queued, and this will move
// the specified request to the head of the queue. Returns false on invalid handle, or if the request is not yet sent. // the specified request to the head of the queue. Returns false on invalid handle, or if the request is not yet sent.
DLL(int32_t) BS_ISteamHTTP_PrioritizeHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) { DLL(int32_t) BS_ISteamHTTP_PrioritizeHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) {
return pThis->PrioritizeHTTPRequest(hRequest); return pThis->PrioritizeHTTPRequest(hRequest);
} }
// Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also // Checks if a response header is present in a HTTP response given a handle from HTTPRequestCompleted_t, also
// returns the size of the header value if present so the caller and allocate a correctly sized buffer for // returns the size of the header value if present so the caller and allocate a correctly sized buffer for
// GetHTTPResponseHeaderValue. // GetHTTPResponseHeaderValue.
DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseHeaderSize(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, uint32 *unResponseHeaderSize) { DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseHeaderSize(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, uint32 *unResponseHeaderSize) {
return pThis->GetHTTPResponseHeaderSize(hRequest, pchHeaderName, unResponseHeaderSize); return pThis->GetHTTPResponseHeaderSize(hRequest, pchHeaderName, unResponseHeaderSize);
} }
// Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the // Gets header values from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the
// header is not present or if your buffer is too small to contain it's value. You should first call // header is not present or if your buffer is too small to contain it's value. You should first call
// BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed. // BGetHTTPResponseHeaderSize to check for the presence of the header and to find out the size buffer needed.
DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseHeaderValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, uint8 *pHeaderValueBuffer, uint32 unBufferSize) { DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseHeaderValue(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchHeaderName, uint8 *pHeaderValueBuffer, uint32 unBufferSize) {
return pThis->GetHTTPResponseHeaderValue(hRequest, pchHeaderName, pHeaderValueBuffer, unBufferSize); return pThis->GetHTTPResponseHeaderValue(hRequest, pchHeaderName, pHeaderValueBuffer, unBufferSize);
} }
// Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the // Gets the size of the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the
// handle is invalid. // handle is invalid.
DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseBodySize(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 *unBodySize) { DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseBodySize(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 *unBodySize) {
return pThis->GetHTTPResponseBodySize(hRequest, unBodySize); return pThis->GetHTTPResponseBodySize(hRequest, unBodySize);
} }
// Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the // Gets the body data from a HTTP response given a handle from HTTPRequestCompleted_t, will return false if the
// handle is invalid or is to a streaming response, or if the provided buffer is not the correct size. Use BGetHTTPResponseBodySize first to find out // handle is invalid or is to a streaming response, or if the provided buffer is not the correct size. Use BGetHTTPResponseBodySize first to find out
// the correct buffer size to use. // the correct buffer size to use.
DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseBodyData(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize) { DLL(int32_t) BS_ISteamHTTP_GetHTTPResponseBodyData(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint8 *pBodyDataBuffer, uint32 unBufferSize) {
return pThis->GetHTTPResponseBodyData(hRequest, pBodyDataBuffer, unBufferSize); return pThis->GetHTTPResponseBodyData(hRequest, pBodyDataBuffer, unBufferSize);
} }
// Gets the body data from a streaming HTTP response given a handle from HTTPRequestDataReceived_t. Will return false if the // Gets the body data from a streaming HTTP response given a handle from HTTPRequestDataReceived_t. Will return false if the
// handle is invalid or is to a non-streaming response (meaning it wasn't sent with SendHTTPRequestAndStreamResponse), or if the buffer size and offset // handle is invalid or is to a non-streaming response (meaning it wasn't sent with SendHTTPRequestAndStreamResponse), or if the buffer size and offset
// do not match the size and offset sent in HTTPRequestDataReceived_t. // do not match the size and offset sent in HTTPRequestDataReceived_t.
DLL(int32_t) BS_ISteamHTTP_GetHTTPStreamingResponseBodyData(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 cOffset, uint8 *pBodyDataBuffer, uint32 unBufferSize) { DLL(int32_t) BS_ISteamHTTP_GetHTTPStreamingResponseBodyData(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 cOffset, uint8 *pBodyDataBuffer, uint32 unBufferSize) {
return pThis->GetHTTPStreamingResponseBodyData(hRequest, cOffset, pBodyDataBuffer, unBufferSize); return pThis->GetHTTPStreamingResponseBodyData(hRequest, cOffset, pBodyDataBuffer, unBufferSize);
} }
// Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t // Releases an HTTP response handle, should always be called to free resources after receiving a HTTPRequestCompleted_t
// callback and finishing using the response. // callback and finishing using the response.
DLL(int32_t) BS_ISteamHTTP_ReleaseHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) { DLL(int32_t) BS_ISteamHTTP_ReleaseHTTPRequest(ISteamHTTP* pThis, HTTPRequestHandle hRequest) {
return pThis->ReleaseHTTPRequest(hRequest); return pThis->ReleaseHTTPRequest(hRequest);
} }
// Gets progress on downloading the body for the request. This will be zero unless a response header has already been // Gets progress on downloading the body for the request. This will be zero unless a response header has already been
// received which included a content-length field. For responses that contain no content-length it will report // received which included a content-length field. For responses that contain no content-length it will report
// zero for the duration of the request as the size is unknown until the connection closes. // zero for the duration of the request as the size is unknown until the connection closes.
DLL(int32_t) BS_ISteamHTTP_GetHTTPDownloadProgressPct(ISteamHTTP* pThis, HTTPRequestHandle hRequest, float *pflPercentOut) { DLL(int32_t) BS_ISteamHTTP_GetHTTPDownloadProgressPct(ISteamHTTP* pThis, HTTPRequestHandle hRequest, float *pflPercentOut) {
return pThis->GetHTTPDownloadProgressPct(hRequest, pflPercentOut); return pThis->GetHTTPDownloadProgressPct(hRequest, pflPercentOut);
} }
// Sets the body for an HTTP Post request. Will fail and return false on a GET request, and will fail if POST params // Sets the body for an HTTP Post request. Will fail and return false on a GET request, and will fail if POST params
// have already been set for the request. Setting this raw body makes it the only contents for the post, the pchContentType // have already been set for the request. Setting this raw body makes it the only contents for the post, the pchContentType
// parameter will set the content-type header for the request so the server may know how to interpret the body. // parameter will set the content-type header for the request so the server may know how to interpret the body.
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestRawPostBody(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestRawPostBody(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchContentType, uint8 *pubBody, uint32 unBodyLen) {
return pThis->SetHTTPRequestRawPostBody(hRequest, pchContentType, pubBody, unBodyLen); return pThis->SetHTTPRequestRawPostBody(hRequest, pchContentType, pubBody, unBodyLen);
} }
// Creates a cookie container handle which you must later free with ReleaseCookieContainer(). If bAllowResponsesToModify=true // Creates a cookie container handle which you must later free with ReleaseCookieContainer(). If bAllowResponsesToModify=true
// than any response to your requests using this cookie container may add new cookies which may be transmitted with // than any response to your requests using this cookie container may add new cookies which may be transmitted with
// future requests. If bAllowResponsesToModify=false than only cookies you explicitly set will be sent. This API is just for // future requests. If bAllowResponsesToModify=false than only cookies you explicitly set will be sent. This API is just for
// during process lifetime, after steam restarts no cookies are persisted and you have no way to access the cookie container across // during process lifetime, after steam restarts no cookies are persisted and you have no way to access the cookie container across
// repeat executions of your process. // repeat executions of your process.
DLL(HTTPCookieContainerHandle) BS_ISteamHTTP_CreateCookieContainer(ISteamHTTP* pThis, bool bAllowResponsesToModify) { DLL(HTTPCookieContainerHandle) BS_ISteamHTTP_CreateCookieContainer(ISteamHTTP* pThis, bool bAllowResponsesToModify) {
return pThis->CreateCookieContainer(bAllowResponsesToModify); return pThis->CreateCookieContainer(bAllowResponsesToModify);
} }
// Release a cookie container you are finished using, freeing it's memory // Release a cookie container you are finished using, freeing it's memory
DLL(int32_t) BS_ISteamHTTP_ReleaseCookieContainer(ISteamHTTP* pThis, HTTPCookieContainerHandle hCookieContainer) { DLL(int32_t) BS_ISteamHTTP_ReleaseCookieContainer(ISteamHTTP* pThis, HTTPCookieContainerHandle hCookieContainer) {
return pThis->ReleaseCookieContainer(hCookieContainer); return pThis->ReleaseCookieContainer(hCookieContainer);
} }
// Adds a cookie to the specified cookie container that will be used with future requests. // Adds a cookie to the specified cookie container that will be used with future requests.
DLL(int32_t) BS_ISteamHTTP_SetCookie(ISteamHTTP* pThis, HTTPCookieContainerHandle hCookieContainer, const char *pchHost, const char *pchUrl, const char *pchCookie) { DLL(int32_t) BS_ISteamHTTP_SetCookie(ISteamHTTP* pThis, HTTPCookieContainerHandle hCookieContainer, const char *pchHost, const char *pchUrl, const char *pchCookie) {
return pThis->SetCookie(hCookieContainer, pchHost, pchUrl, pchCookie); return pThis->SetCookie(hCookieContainer, pchHost, pchUrl, pchCookie);
} }
// Set the cookie container to use for a HTTP request // Set the cookie container to use for a HTTP request
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestCookieContainer(ISteamHTTP* pThis, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestCookieContainer(ISteamHTTP* pThis, HTTPRequestHandle hRequest, HTTPCookieContainerHandle hCookieContainer) {
return pThis->SetHTTPRequestCookieContainer(hRequest, hCookieContainer); return pThis->SetHTTPRequestCookieContainer(hRequest, hCookieContainer);
} }
// Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end // Set the extra user agent info for a request, this doesn't clobber the normal user agent, it just adds the extra info on the end
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestUserAgentInfo(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchUserAgentInfo) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestUserAgentInfo(ISteamHTTP* pThis, HTTPRequestHandle hRequest, const char *pchUserAgentInfo) {
return pThis->SetHTTPRequestUserAgentInfo(hRequest, pchUserAgentInfo); return pThis->SetHTTPRequestUserAgentInfo(hRequest, pchUserAgentInfo);
} }
// Set that https request should require verified SSL certificate via machines certificate trust store // Set that https request should require verified SSL certificate via machines certificate trust store
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(ISteamHTTP* pThis, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestRequiresVerifiedCertificate(ISteamHTTP* pThis, HTTPRequestHandle hRequest, bool bRequireVerifiedCertificate) {
return pThis->SetHTTPRequestRequiresVerifiedCertificate(hRequest, bRequireVerifiedCertificate); return pThis->SetHTTPRequestRequiresVerifiedCertificate(hRequest, bRequireVerifiedCertificate);
} }
// Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout // Set an absolute timeout on the HTTP request, this is just a total time timeout different than the network activity timeout
// which can bump everytime we get more data // which can bump everytime we get more data
DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 unMilliseconds) { DLL(int32_t) BS_ISteamHTTP_SetHTTPRequestAbsoluteTimeoutMS(ISteamHTTP* pThis, HTTPRequestHandle hRequest, uint32 unMilliseconds) {
return pThis->SetHTTPRequestAbsoluteTimeoutMS(hRequest, unMilliseconds); return pThis->SetHTTPRequestAbsoluteTimeoutMS(hRequest, unMilliseconds);
} }
// Check if the reason the request failed was because we timed it out (rather than some harder failure) // Check if the reason the request failed was because we timed it out (rather than some harder failure)
DLL(int32_t) BS_ISteamHTTP_GetHTTPRequestWasTimedOut(ISteamHTTP* pThis, HTTPRequestHandle hRequest, bool *pbWasTimedOut) { DLL(int32_t) BS_ISteamHTTP_GetHTTPRequestWasTimedOut(ISteamHTTP* pThis, HTTPRequestHandle hRequest, bool *pbWasTimedOut) {
return pThis->GetHTTPRequestWasTimedOut(hRequest, pbWasTimedOut); return pThis->GetHTTPRequestWasTimedOut(hRequest, pbWasTimedOut);
} }
+295 -295
View File
@@ -1,296 +1,296 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamMatchmaking*) BS_SteamMatchmaking() { DLL(ISteamMatchmaking*) BS_SteamMatchmaking() {
return SteamMatchmaking(); return SteamMatchmaking();
} }
// game server favorites storage // game server favorites storage
// saves basic details about a multiplayer game server locally // saves basic details about a multiplayer game server locally
// returns the number of favorites servers the user has stored // returns the number of favorites servers the user has stored
DLL(int32_t) BS_ISteamMatchmaking_GetFavoriteGameCount(ISteamMatchmaking* pThis) { DLL(int32_t) BS_ISteamMatchmaking_GetFavoriteGameCount(ISteamMatchmaking* pThis) {
return pThis->GetFavoriteGameCount(); return pThis->GetFavoriteGameCount();
} }
// returns the details of the game server // returns the details of the game server
// iGame is of range [0,GetFavoriteGameCount()) // iGame is of range [0,GetFavoriteGameCount())
// *pnIP, *pnConnPort are filled in the with IP:port of the game server // *pnIP, *pnConnPort are filled in the with IP:port of the game server
// *punFlags specify whether the game server was stored as an explicit favorite or in the history of connections // *punFlags specify whether the game server was stored as an explicit favorite or in the history of connections
// *pRTime32LastPlayedOnServer is filled in the with the Unix time the favorite was added // *pRTime32LastPlayedOnServer is filled in the with the Unix time the favorite was added
DLL(int32_t) BS_ISteamMatchmaking_GetFavoriteGame(ISteamMatchmaking* pThis, int32_t iGame, DLL(int32_t) BS_ISteamMatchmaking_GetFavoriteGame(ISteamMatchmaking* pThis, int32_t iGame,
AppId_t *pnAppID, uint32_t *pnIP, uint16_t *pnConnPort, uint16_t *pnQueryPort, AppId_t *pnAppID, uint32_t *pnIP, uint16_t *pnConnPort, uint16_t *pnQueryPort,
uint32_t *punFlags, uint32_t *pRTime32LastPlayedOnServer) { uint32_t *punFlags, uint32_t *pRTime32LastPlayedOnServer) {
return pThis->GetFavoriteGame(iGame, pnAppID, pnIP, pnConnPort, pnQueryPort, punFlags, pRTime32LastPlayedOnServer); return pThis->GetFavoriteGame(iGame, pnAppID, pnIP, pnConnPort, pnQueryPort, punFlags, pRTime32LastPlayedOnServer);
} }
// adds the game server to the local list; updates the time played of the server if it already exists in the list // adds the game server to the local list; updates the time played of the server if it already exists in the list
DLL(int) BS_ISteamMatchmaking_AddFavoriteGame(ISteamMatchmaking* pThis, AppId_t nAppID, uint32 nIP, uint16 nConnPort, DLL(int) BS_ISteamMatchmaking_AddFavoriteGame(ISteamMatchmaking* pThis, AppId_t nAppID, uint32 nIP, uint16 nConnPort,
uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer) { uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer) {
return pThis->AddFavoriteGame(nAppID, nIP, nConnPort, nQueryPort, unFlags, rTime32LastPlayedOnServer); return pThis->AddFavoriteGame(nAppID, nIP, nConnPort, nQueryPort, unFlags, rTime32LastPlayedOnServer);
} }
// removes the game server from the local storage; returns true if one was removed // removes the game server from the local storage; returns true if one was removed
DLL(bool) BS_ISteamMatchmaking_RemoveFavoriteGame(ISteamMatchmaking* pThis, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags) { DLL(bool) BS_ISteamMatchmaking_RemoveFavoriteGame(ISteamMatchmaking* pThis, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags) {
return pThis->RemoveFavoriteGame(nAppID, nIP, nConnPort, nQueryPort, unFlags); return pThis->RemoveFavoriteGame(nAppID, nIP, nConnPort, nQueryPort, unFlags);
} }
/////// ///////
// Game lobby functions // Game lobby functions
// Get a list of relevant lobbies // Get a list of relevant lobbies
// this is an asynchronous request // this is an asynchronous request
// results will be returned by LobbyMatchList_t callback & call result, with the number of lobbies found // results will be returned by LobbyMatchList_t callback & call result, with the number of lobbies found
// this will never return lobbies that are full // this will never return lobbies that are full
// to add more filter, the filter calls below need to be call before each and every RequestLobbyList() call // to add more filter, the filter calls below need to be call before each and every RequestLobbyList() call
// use the CCallResult<> object in steam_api.h to match the SteamAPICall_t call result to a function in an object, e.g. // use the CCallResult<> object in steam_api.h to match the SteamAPICall_t call result to a function in an object, e.g.
/* /*
class CMyLobbyListManager class CMyLobbyListManager
{ {
CCallResult<CMyLobbyListManager, LobbyMatchList_t> m_CallResultLobbyMatchList; CCallResult<CMyLobbyListManager, LobbyMatchList_t> m_CallResultLobbyMatchList;
void FindLobbies() void FindLobbies()
{ {
// SteamMatchmaking()->AddRequestLobbyListFilter*() functions would be called here, before RequestLobbyList() // SteamMatchmaking()->AddRequestLobbyListFilter*() functions would be called here, before RequestLobbyList()
SteamAPICall_t hSteamAPICall = SteamMatchmaking()->RequestLobbyList(); SteamAPICall_t hSteamAPICall = SteamMatchmaking()->RequestLobbyList();
m_CallResultLobbyMatchList.Set( hSteamAPICall, this, &CMyLobbyListManager::OnLobbyMatchList ); m_CallResultLobbyMatchList.Set( hSteamAPICall, this, &CMyLobbyListManager::OnLobbyMatchList );
} }
void OnLobbyMatchList( LobbyMatchList_t *pLobbyMatchList, bool bIOFailure ) void OnLobbyMatchList( LobbyMatchList_t *pLobbyMatchList, bool bIOFailure )
{ {
// lobby list has be retrieved from Steam back-end, use results // lobby list has be retrieved from Steam back-end, use results
} }
} }
*/ */
// //
//CALL_RESULT(LobbyMatchList_t) //CALL_RESULT(LobbyMatchList_t)
DLL(SteamAPICall_t) BS_ISteamMatchmaking_RequestLobbyList(ISteamMatchmaking* pThis) { DLL(SteamAPICall_t) BS_ISteamMatchmaking_RequestLobbyList(ISteamMatchmaking* pThis) {
return pThis->RequestLobbyList(); return pThis->RequestLobbyList();
} }
// filters for lobbies // filters for lobbies
// this needs to be called before RequestLobbyList() to take effect // this needs to be called before RequestLobbyList() to take effect
// these are cleared on each call to RequestLobbyList() // these are cleared on each call to RequestLobbyList()
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListStringFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, const char *pchValueToMatch, ELobbyComparison eComparisonType) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListStringFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, const char *pchValueToMatch, ELobbyComparison eComparisonType) {
pThis->AddRequestLobbyListStringFilter(pchKeyToMatch, pchValueToMatch, eComparisonType); pThis->AddRequestLobbyListStringFilter(pchKeyToMatch, pchValueToMatch, eComparisonType);
} }
// numerical comparison // numerical comparison
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListNumericalFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, int nValueToMatch, ELobbyComparison eComparisonType) {
pThis->AddRequestLobbyListNumericalFilter(pchKeyToMatch, nValueToMatch, eComparisonType); pThis->AddRequestLobbyListNumericalFilter(pchKeyToMatch, nValueToMatch, eComparisonType);
} }
// returns results closest to the specified value. Multiple near filters can be added, with early filters taking precedence // returns results closest to the specified value. Multiple near filters can be added, with early filters taking precedence
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, int nValueToBeCloseTo) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListNearValueFilter(ISteamMatchmaking* pThis, const char *pchKeyToMatch, int nValueToBeCloseTo) {
pThis->AddRequestLobbyListNearValueFilter(pchKeyToMatch, nValueToBeCloseTo); pThis->AddRequestLobbyListNearValueFilter(pchKeyToMatch, nValueToBeCloseTo);
} }
// returns only lobbies with the specified number of slots available // returns only lobbies with the specified number of slots available
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(ISteamMatchmaking* pThis, int nSlotsAvailable) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListFilterSlotsAvailable(ISteamMatchmaking* pThis, int nSlotsAvailable) {
pThis->AddRequestLobbyListFilterSlotsAvailable(nSlotsAvailable); pThis->AddRequestLobbyListFilterSlotsAvailable(nSlotsAvailable);
} }
// sets the distance for which we should search for lobbies (based on users IP address to location map on the Steam backed) // sets the distance for which we should search for lobbies (based on users IP address to location map on the Steam backed)
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(ISteamMatchmaking* pThis, ELobbyDistanceFilter eLobbyDistanceFilter) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListDistanceFilter(ISteamMatchmaking* pThis, ELobbyDistanceFilter eLobbyDistanceFilter) {
pThis->AddRequestLobbyListDistanceFilter(eLobbyDistanceFilter); pThis->AddRequestLobbyListDistanceFilter(eLobbyDistanceFilter);
} }
// sets how many results to return, the lower the count the faster it is to download the lobby results & details to the client // sets how many results to return, the lower the count the faster it is to download the lobby results & details to the client
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(ISteamMatchmaking* pThis, int cMaxResults) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListResultCountFilter(ISteamMatchmaking* pThis, int cMaxResults) {
pThis->AddRequestLobbyListResultCountFilter(cMaxResults); pThis->AddRequestLobbyListResultCountFilter(cMaxResults);
} }
DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(void) BS_ISteamMatchmaking_AddRequestLobbyListCompatibleMembersFilter(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
pThis->AddRequestLobbyListCompatibleMembersFilter(*steamIDLobby); pThis->AddRequestLobbyListCompatibleMembersFilter(*steamIDLobby);
} }
// returns the CSteamID* of a lobby, as retrieved by a RequestLobbyList call // returns the CSteamID* of a lobby, as retrieved by a RequestLobbyList call
// should only be called after a LobbyMatchList_t callback is received // should only be called after a LobbyMatchList_t callback is received
// iLobby is of the range [0, LobbyMatchList_t::m_nLobbiesMatching) // iLobby is of the range [0, LobbyMatchList_t::m_nLobbiesMatching)
// the returned CSteamID*::IsValid() will be false if iLobby is out of range // the returned CSteamID*::IsValid() will be false if iLobby is out of range
DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyByIndex(ISteamMatchmaking* pThis, int iLobby) { DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyByIndex(ISteamMatchmaking* pThis, int iLobby) {
return &(pThis->GetLobbyByIndex(iLobby)); return &(pThis->GetLobbyByIndex(iLobby));
} }
// Create a lobby on the Steam servers. // Create a lobby on the Steam servers.
// If private, then the lobby will not be returned by any RequestLobbyList() call; the CSteamID* // If private, then the lobby will not be returned by any RequestLobbyList() call; the CSteamID*
// of the lobby will need to be communicated via game channels or via InviteUserToLobby() // of the lobby will need to be communicated via game channels or via InviteUserToLobby()
// this is an asynchronous request // this is an asynchronous request
// results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point // results will be returned by LobbyCreated_t callback and call result; lobby is joined & ready to use at this point
// a LobbyEnter_t callback will also be received (since the local user is joining their own lobby) // a LobbyEnter_t callback will also be received (since the local user is joining their own lobby)
//CALL_RESULT(LobbyCreated_t) //CALL_RESULT(LobbyCreated_t)
DLL(SteamAPICall_t) BS_ISteamMatchmaking_CreateLobby(ISteamMatchmaking* pThis, ELobbyType eLobbyType, int cMaxMembers) { DLL(SteamAPICall_t) BS_ISteamMatchmaking_CreateLobby(ISteamMatchmaking* pThis, ELobbyType eLobbyType, int cMaxMembers) {
return pThis->CreateLobby(eLobbyType, cMaxMembers); return pThis->CreateLobby(eLobbyType, cMaxMembers);
} }
// Joins an existing lobby // Joins an existing lobby
// this is an asynchronous request // this is an asynchronous request
// results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful // results will be returned by LobbyEnter_t callback & call result, check m_EChatRoomEnterResponse to see if was successful
// lobby metadata is available to use immediately on this call completing // lobby metadata is available to use immediately on this call completing
//CALL_RESULT(LobbyEnter_t) //CALL_RESULT(LobbyEnter_t)
DLL(SteamAPICall_t) BS_ISteamMatchmaking_JoinLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(SteamAPICall_t) BS_ISteamMatchmaking_JoinLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->JoinLobby(*steamIDLobby); return pThis->JoinLobby(*steamIDLobby);
} }
// Leave a lobby; this will take effect immediately on the client side // Leave a lobby; this will take effect immediately on the client side
// other users in the lobby will be notified by a LobbyChatUpdate_t callback // other users in the lobby will be notified by a LobbyChatUpdate_t callback
DLL(void) BS_ISteamMatchmaking_LeaveLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(void) BS_ISteamMatchmaking_LeaveLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->LeaveLobby(*steamIDLobby); return pThis->LeaveLobby(*steamIDLobby);
} }
// Invite another user to the lobby // Invite another user to the lobby
// the target user will receive a LobbyInvite_t callback // the target user will receive a LobbyInvite_t callback
// will return true if the invite is successfully sent, whether or not the target responds // will return true if the invite is successfully sent, whether or not the target responds
// returns false if the local user is not connected to the Steam servers // returns false if the local user is not connected to the Steam servers
// if the other user clicks the join link, a GameLobbyJoinRequested_t will be posted if the user is in-game, // if the other user clicks the join link, a GameLobbyJoinRequested_t will be posted if the user is in-game,
// or if the game isn't running yet the game will be launched with the parameter +connect_lobby <64-bit lobby id> // or if the game isn't running yet the game will be launched with the parameter +connect_lobby <64-bit lobby id>
DLL(bool) BS_ISteamMatchmaking_InviteUserToLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDInvitee) { DLL(bool) BS_ISteamMatchmaking_InviteUserToLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDInvitee) {
return pThis->InviteUserToLobby(*steamIDLobby, *steamIDInvitee); return pThis->InviteUserToLobby(*steamIDLobby, *steamIDInvitee);
} }
// Lobby iteration, for viewing details of users in a lobby // Lobby iteration, for viewing details of users in a lobby
// only accessible if the lobby user is a member of the specified lobby // only accessible if the lobby user is a member of the specified lobby
// persona information for other lobby members (name, avatar, etc.) will be asynchronously received // persona information for other lobby members (name, avatar, etc.) will be asynchronously received
// and accessible via ISteamFriends interface // and accessible via ISteamFriends interface
// returns the number of users in the specified lobby // returns the number of users in the specified lobby
DLL(int) BS_ISteamMatchmaking_GetNumLobbyMembers(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(int) BS_ISteamMatchmaking_GetNumLobbyMembers(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->GetNumLobbyMembers(*steamIDLobby); return pThis->GetNumLobbyMembers(*steamIDLobby);
} }
// returns the CSteamID* of a user in the lobby // returns the CSteamID* of a user in the lobby
// iMember is of range [0,GetNumLobbyMembers()) // iMember is of range [0,GetNumLobbyMembers())
// note that the current user must be in a lobby to retrieve CSteamID*s of other users in that lobby // note that the current user must be in a lobby to retrieve CSteamID*s of other users in that lobby
DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyMemberByIndex(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iMember) { DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyMemberByIndex(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iMember) {
return &(pThis->GetLobbyMemberByIndex(*steamIDLobby, iMember)); return &(pThis->GetLobbyMemberByIndex(*steamIDLobby, iMember));
} }
// Get data associated with this lobby // Get data associated with this lobby
// takes a simple key, and returns the string associated with it // takes a simple key, and returns the string associated with it
// "" will be returned if no value is set, or if steamIDLobby is invalid // "" will be returned if no value is set, or if steamIDLobby is invalid
DLL(const char*) BS_ISteamMatchmaking_GetLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey) { DLL(const char*) BS_ISteamMatchmaking_GetLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey) {
return pThis->GetLobbyData(*steamIDLobby, pchKey); return pThis->GetLobbyData(*steamIDLobby, pchKey);
} }
// Sets a key/value pair in the lobby metadata // Sets a key/value pair in the lobby metadata
// each user in the lobby will be broadcast this new value, and any new users joining will receive any existing data // each user in the lobby will be broadcast this new value, and any new users joining will receive any existing data
// this can be used to set lobby names, map, etc. // this can be used to set lobby names, map, etc.
// to reset a key, just set it to "" // to reset a key, just set it to ""
// other users in the lobby will receive notification of the lobby data change via a LobbyDataUpdate_t callback // other users in the lobby will receive notification of the lobby data change via a LobbyDataUpdate_t callback
DLL(bool) BS_ISteamMatchmaking_SetLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey, const char *pchValue) { DLL(bool) BS_ISteamMatchmaking_SetLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey, const char *pchValue) {
return pThis->SetLobbyData(*steamIDLobby, pchKey, pchValue); return pThis->SetLobbyData(*steamIDLobby, pchKey, pchValue);
} }
// returns the number of metadata keys set on the specified lobby // returns the number of metadata keys set on the specified lobby
DLL(int) BS_ISteamMatchmaking_GetLobbyDataCount(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(int) BS_ISteamMatchmaking_GetLobbyDataCount(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->GetLobbyDataCount(*steamIDLobby); return pThis->GetLobbyDataCount(*steamIDLobby);
} }
// returns a lobby metadata key/values pair by index, of range [0, GetLobbyDataCount()) // returns a lobby metadata key/values pair by index, of range [0, GetLobbyDataCount())
DLL(bool) BS_ISteamMatchmaking_GetLobbyDataByIndex(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize) { DLL(bool) BS_ISteamMatchmaking_GetLobbyDataByIndex(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iLobbyData, char *pchKey, int cchKeyBufferSize, char *pchValue, int cchValueBufferSize) {
return pThis->GetLobbyDataByIndex(*steamIDLobby, iLobbyData, pchKey, cchKeyBufferSize, pchValue, cchValueBufferSize); return pThis->GetLobbyDataByIndex(*steamIDLobby, iLobbyData, pchKey, cchKeyBufferSize, pchValue, cchValueBufferSize);
} }
// removes a metadata key from the lobby // removes a metadata key from the lobby
DLL(bool) BS_ISteamMatchmaking_DeleteLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey) { DLL(bool) BS_ISteamMatchmaking_DeleteLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey) {
return pThis->DeleteLobbyData(*steamIDLobby, pchKey); return pThis->DeleteLobbyData(*steamIDLobby, pchKey);
} }
// Gets per-user metadata for someone in this lobby // Gets per-user metadata for someone in this lobby
DLL(const char*) BS_ISteamMatchmaking_GetLobbyMemberData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDUser, const char *pchKey) { DLL(const char*) BS_ISteamMatchmaking_GetLobbyMemberData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDUser, const char *pchKey) {
return pThis->GetLobbyMemberData(*steamIDLobby, *steamIDUser, pchKey); return pThis->GetLobbyMemberData(*steamIDLobby, *steamIDUser, pchKey);
} }
// Sets per-user metadata (for the local user implicitly) // Sets per-user metadata (for the local user implicitly)
DLL(void) BS_ISteamMatchmaking_SetLobbyMemberData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey, const char *pchValue) { DLL(void) BS_ISteamMatchmaking_SetLobbyMemberData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const char *pchKey, const char *pchValue) {
pThis->SetLobbyMemberData(*steamIDLobby, pchKey, pchValue); pThis->SetLobbyMemberData(*steamIDLobby, pchKey, pchValue);
} }
// Broadcasts a chat message to the all the users in the lobby // Broadcasts a chat message to the all the users in the lobby
// users in the lobby (including the local user) will receive a LobbyChatMsg_t callback // users in the lobby (including the local user) will receive a LobbyChatMsg_t callback
// returns true if the message is successfully sent // returns true if the message is successfully sent
// pvMsgBody can be binary or text data, up to 4k // pvMsgBody can be binary or text data, up to 4k
// if pvMsgBody is text, cubMsgBody should be strlen( text ) + 1, to include the null terminator // if pvMsgBody is text, cubMsgBody should be strlen( text ) + 1, to include the null terminator
DLL(bool) BS_ISteamMatchmaking_SendLobbyChatMsg(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const void *pvMsgBody, int cubMsgBody) { DLL(bool) BS_ISteamMatchmaking_SendLobbyChatMsg(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, const void *pvMsgBody, int cubMsgBody) {
return pThis->SendLobbyChatMsg(*steamIDLobby, pvMsgBody, cubMsgBody); return pThis->SendLobbyChatMsg(*steamIDLobby, pvMsgBody, cubMsgBody);
} }
// Get a chat message as specified in a LobbyChatMsg_t callback // Get a chat message as specified in a LobbyChatMsg_t callback
// iChatID is the LobbyChatMsg_t::m_iChatID value in the callback // iChatID is the LobbyChatMsg_t::m_iChatID value in the callback
// *pSteamIDUser is filled in with the CSteamID* of the member // *pSteamIDUser is filled in with the CSteamID* of the member
// *pvData is filled in with the message itself // *pvData is filled in with the message itself
// return value is the number of bytes written into the buffer // return value is the number of bytes written into the buffer
DLL(int) BS_ISteamMatchmaking_GetLobbyChatEntry(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iChatID, OUT_STRUCT() CSteamID* *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType) { DLL(int) BS_ISteamMatchmaking_GetLobbyChatEntry(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int iChatID, OUT_STRUCT() CSteamID* *pSteamIDUser, void *pvData, int cubData, EChatEntryType *peChatEntryType) {
return pThis->GetLobbyChatEntry(*steamIDLobby, iChatID, *pSteamIDUser, pvData, cubData, peChatEntryType); return pThis->GetLobbyChatEntry(*steamIDLobby, iChatID, *pSteamIDUser, pvData, cubData, peChatEntryType);
} }
// Refreshes metadata for a lobby you're not necessarily in right now // Refreshes metadata for a lobby you're not necessarily in right now
// you never do this for lobbies you're a member of, only if your // you never do this for lobbies you're a member of, only if your
// this will send down all the metadata associated with a lobby // this will send down all the metadata associated with a lobby
// this is an asynchronous call // this is an asynchronous call
// returns false if the local user is not connected to the Steam servers // returns false if the local user is not connected to the Steam servers
// results will be returned by a LobbyDataUpdate_t callback // results will be returned by a LobbyDataUpdate_t callback
// if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false // if the specified lobby doesn't exist, LobbyDataUpdate_t::m_bSuccess will be set to false
DLL(bool) BS_ISteamMatchmaking_RequestLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(bool) BS_ISteamMatchmaking_RequestLobbyData(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->RequestLobbyData(*steamIDLobby); return pThis->RequestLobbyData(*steamIDLobby);
} }
// sets the game server associated with the lobby // sets the game server associated with the lobby
// usually at this point, the users will join the specified game server // usually at this point, the users will join the specified game server
// either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect // either the IP/Port or the steamID of the game server has to be valid, depending on how you want the clients to be able to connect
DLL(void) BS_ISteamMatchmaking_SetLobbyGameServer(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID* steamIDGameServer) { DLL(void) BS_ISteamMatchmaking_SetLobbyGameServer(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, uint32 unGameServerIP, uint16 unGameServerPort, CSteamID* steamIDGameServer) {
pThis->SetLobbyGameServer(*steamIDLobby, unGameServerIP, unGameServerPort, *steamIDGameServer); pThis->SetLobbyGameServer(*steamIDLobby, unGameServerIP, unGameServerPort, *steamIDGameServer);
} }
// returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist // returns the details of a game server set in a lobby - returns false if there is no game server set, or that lobby doesn't exist
DLL(bool) BS_ISteamMatchmaking_GetLobbyGameServer(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, OUT_STRUCT() CSteamID* *psteamIDGameServer) { DLL(bool) BS_ISteamMatchmaking_GetLobbyGameServer(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, uint32 *punGameServerIP, uint16 *punGameServerPort, OUT_STRUCT() CSteamID* *psteamIDGameServer) {
return pThis->GetLobbyGameServer(*steamIDLobby, punGameServerIP, punGameServerPort, *psteamIDGameServer); return pThis->GetLobbyGameServer(*steamIDLobby, punGameServerIP, punGameServerPort, *psteamIDGameServer);
} }
// set the limit on the # of users who can join the lobby // set the limit on the # of users who can join the lobby
DLL(bool) BS_ISteamMatchmaking_SetLobbyMemberLimit(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int cMaxMembers) { DLL(bool) BS_ISteamMatchmaking_SetLobbyMemberLimit(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, int cMaxMembers) {
return pThis->SetLobbyMemberLimit(*steamIDLobby, cMaxMembers); return pThis->SetLobbyMemberLimit(*steamIDLobby, cMaxMembers);
} }
// returns the current limit on the # of users who can join the lobby; returns 0 if no limit is defined // returns the current limit on the # of users who can join the lobby; returns 0 if no limit is defined
DLL(int) BS_ISteamMatchmaking_GetLobbyMemberLimit(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(int) BS_ISteamMatchmaking_GetLobbyMemberLimit(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return pThis->GetLobbyMemberLimit(*steamIDLobby); return pThis->GetLobbyMemberLimit(*steamIDLobby);
} }
// updates which type of lobby it is // updates which type of lobby it is
// only lobbies that are k_ELobbyTypePublic or k_ELobbyTypeInvisible, and are set to joinable, will be returned by RequestLobbyList() calls // only lobbies that are k_ELobbyTypePublic or k_ELobbyTypeInvisible, and are set to joinable, will be returned by RequestLobbyList() calls
DLL(bool) BS_ISteamMatchmaking_SetLobbyType(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, ELobbyType eLobbyType) { DLL(bool) BS_ISteamMatchmaking_SetLobbyType(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, ELobbyType eLobbyType) {
return pThis->SetLobbyType(*steamIDLobby, eLobbyType); return pThis->SetLobbyType(*steamIDLobby, eLobbyType);
} }
// sets whether or not a lobby is joinable - defaults to true for a new lobby // sets whether or not a lobby is joinable - defaults to true for a new lobby
// if set to false, no user can join, even if they are a friend or have been invited // if set to false, no user can join, even if they are a friend or have been invited
DLL(bool) BS_ISteamMatchmaking_SetLobbyJoinable(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, bool bLobbyJoinable) { DLL(bool) BS_ISteamMatchmaking_SetLobbyJoinable(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, bool bLobbyJoinable) {
return pThis->SetLobbyJoinable(*steamIDLobby, bLobbyJoinable); return pThis->SetLobbyJoinable(*steamIDLobby, bLobbyJoinable);
} }
// returns the current lobby owner // returns the current lobby owner
// you must be a member of the lobby to access this // you must be a member of the lobby to access this
// there always one lobby owner - if the current owner leaves, another user will become the owner // there always one lobby owner - if the current owner leaves, another user will become the owner
// it is possible (bur rare) to join a lobby just as the owner is leaving, thus entering a lobby with self as the owner // it is possible (bur rare) to join a lobby just as the owner is leaving, thus entering a lobby with self as the owner
DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyOwner(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) { DLL(CSteamID*) BS_ISteamMatchmaking_GetLobbyOwner(ISteamMatchmaking* pThis, CSteamID* steamIDLobby) {
return &(pThis->GetLobbyOwner(*steamIDLobby)); return &(pThis->GetLobbyOwner(*steamIDLobby));
} }
// changes who the lobby owner is // changes who the lobby owner is
// you must be the lobby owner for this to succeed, and steamIDNewOwner must be in the lobby // you must be the lobby owner for this to succeed, and steamIDNewOwner must be in the lobby
// after completion, the local user will no longer be the owner // after completion, the local user will no longer be the owner
DLL(bool) BS_ISteamMatchmaking_SetLobbyOwner(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDNewOwner) { DLL(bool) BS_ISteamMatchmaking_SetLobbyOwner(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDNewOwner) {
return pThis->SetLobbyOwner(*steamIDLobby, *steamIDNewOwner); return pThis->SetLobbyOwner(*steamIDLobby, *steamIDNewOwner);
} }
// link two lobbies for the purposes of checking player compatibility // link two lobbies for the purposes of checking player compatibility
// you must be the lobby owner of both lobbies // you must be the lobby owner of both lobbies
DLL(bool) BS_ISteamMatchmaking_SetLinkedLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDLobbyDependent) { DLL(bool) BS_ISteamMatchmaking_SetLinkedLobby(ISteamMatchmaking* pThis, CSteamID* steamIDLobby, CSteamID* steamIDLobbyDependent) {
return pThis->SetLinkedLobby(*steamIDLobby, *steamIDLobbyDependent); return pThis->SetLinkedLobby(*steamIDLobby, *steamIDLobbyDependent);
} }
+190 -23
View File
@@ -1,23 +1,190 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamMatchmakingServers*) BS_SteamMatchmakingServers() { //-----------------------------------------------------------------------------
return SteamMatchmakingServers(); // Purpose: Functions for match making services for clients to get to game lists and details
} //-----------------------------------------------------------------------------
DLL(ISteamMatchmakingServers*) BS_SteamMatchmakingServers() {
#pragma message("SteamMatchmakingServers is not ported yet. TODO!") return SteamMatchmakingServers();
}
// Request a new list of servers of a particular type. These calls each correspond to one of the EMatchMakingType values.
// Each call allocates a new asynchronous request object.
// Request object must be released by calling ReleaseRequest( hServerListRequest )
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestInternetServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestInternetServerList(iApp, ppchFilters, nFilters, pRequestServersResponse);
}
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestLANServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestLANServerList(iApp, pRequestServersResponse);
}
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestFriendsServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestFriendsServerList(iApp, ppchFilters, nFilters, pRequestServersResponse);
}
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestFavoritesServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestFavoritesServerList(iApp, ppchFilters, nFilters, pRequestServersResponse);
}
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestHistoryServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestHistoryServerList(iApp, ppchFilters, nFilters, pRequestServersResponse);
}
DLL(HServerListRequest) BS_ISteamMatchmakingServers_RequestSpectatorServerList(ISteamMatchmakingServers* pThis, AppId_t iApp, ARRAY_COUNT(nFilters) MatchMakingKeyValuePair_t **ppchFilters, uint32 nFilters, ISteamMatchmakingServerListResponse *pRequestServersResponse) {
return pThis->RequestSpectatorServerList(iApp, ppchFilters, nFilters, pRequestServersResponse);
}
// Releases the asynchronous request object and cancels any pending query on it if there's a pending query in progress.
// RefreshComplete callback is not posted when request is released.
DLL(void) BS_ISteamMatchmakingServers_ReleaseRequest(ISteamMatchmakingServers* pThis, HServerListRequest hServerListRequest) {
pThis->ReleaseRequest(hServerListRequest);
}
/* the filter operation codes that go in the key part of MatchMakingKeyValuePair_t should be one of these:
"map"
- Server passes the filter if the server is playing the specified map.
"gamedataand"
- Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains all of the
specified strings. The value field is a comma-delimited list of strings to match.
"gamedataor"
- Server passes the filter if the server's game data (ISteamGameServer::SetGameData) contains at least one of the
specified strings. The value field is a comma-delimited list of strings to match.
"gamedatanor"
- Server passes the filter if the server's game data (ISteamGameServer::SetGameData) does not contain any
of the specified strings. The value field is a comma-delimited list of strings to check.
"gametagsand"
- Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) contains all
of the specified strings. The value field is a comma-delimited list of strings to check.
"gametagsnor"
- Server passes the filter if the server's game tags (ISteamGameServer::SetGameTags) does not contain any
of the specified strings. The value field is a comma-delimited list of strings to check.
"and" (x1 && x2 && ... && xn)
"or" (x1 || x2 || ... || xn)
"nand" !(x1 && x2 && ... && xn)
"nor" !(x1 || x2 || ... || xn)
- Performs Boolean operation on the following filters. The operand to this filter specifies
the "size" of the Boolean inputs to the operation, in Key/value pairs. (The keyvalue
pairs must immediately follow, i.e. this is a prefix logical operator notation.)
In the simplest case where Boolean expressions are not nested, this is simply
the number of operands.
For example, to match servers on a particular map or with a particular tag, would would
use these filters.
( server.map == "cp_dustbowl" || server.gametags.contains("payload") )
"or", "2"
"map", "cp_dustbowl"
"gametagsand", "payload"
If logical inputs are nested, then the operand specifies the size of the entire
"length" of its operands, not the number of immediate children.
( server.map == "cp_dustbowl" || ( server.gametags.contains("payload") && !server.gametags.contains("payloadrace") ) )
"or", "4"
"map", "cp_dustbowl"
"and", "2"
"gametagsand", "payload"
"gametagsnor", "payloadrace"
Unary NOT can be achieved using either "nand" or "nor" with a single operand.
"addr"
- Server passes the filter if the server's query address matches the specified IP or IP:port.
"gameaddr"
- Server passes the filter if the server's game address matches the specified IP or IP:port.
The following filter operations ignore the "value" part of MatchMakingKeyValuePair_t
"dedicated"
- Server passes the filter if it passed true to SetDedicatedServer.
"secure"
- Server passes the filter if the server is VAC-enabled.
"notfull"
- Server passes the filter if the player count is less than the reported max player count.
"hasplayers"
- Server passes the filter if the player count is greater than zero.
"noplayers"
- Server passes the filter if it doesn't have any players.
"linux"
- Server passes the filter if it's a linux server
*/
// Get details on a given server in the list, you can get the valid range of index
// values by calling GetServerCount(). You will also receive index values in
// ISteamMatchmakingServerListResponse::ServerResponded() callbacks
DLL(gameserveritem_t*) BS_ISteamMatchmakingServers_GetServerDetails(ISteamMatchmakingServers* pThis, HServerListRequest hRequest, int iServer) {
return pThis->GetServerDetails(hRequest, iServer);
}
// Cancel an request which is operation on the given list type. You should call this to cancel
// any in-progress requests before destructing a callback object that may have been passed
// to one of the above list request calls. Not doing so may result in a crash when a callback
// occurs on the destructed object.
// Canceling a query does not release the allocated request handle.
// The request handle must be released using ReleaseRequest( hRequest )
DLL(void) BS_ISteamMatchmakingServers_CancelQuery(ISteamMatchmakingServers* pThis, HServerListRequest hRequest) {
pThis->CancelQuery(hRequest);
}
// Ping every server in your list again but don't update the list of servers
// Query callback installed when the server list was requested will be used
// again to post notifications and RefreshComplete, so the callback must remain
// valid until another RefreshComplete is called on it or the request
// is released with ReleaseRequest( hRequest )
DLL(void) BS_ISteamMatchmakingServers_RefreshQuery(ISteamMatchmakingServers* pThis, HServerListRequest hRequest) {
pThis->RefreshQuery(hRequest);
}
// Returns true if the list is currently refreshing its server list
DLL(bool) BS_ISteamMatchmakingServers_IsRefreshing(ISteamMatchmakingServers* pThis, HServerListRequest hRequest) {
return pThis->IsRefreshing(hRequest);
}
// How many servers in the given list, GetServerDetails above takes 0... GetServerCount() - 1
DLL(int) BS_ISteamMatchmakingServers_GetServerCount(ISteamMatchmakingServers* pThis, HServerListRequest hRequest) {
return pThis->GetServerCount(hRequest);
}
// Refresh a single server inside of a query (rather than all the servers )
DLL(void) BS_ISteamMatchmakingServers_RefreshServer(ISteamMatchmakingServers* pThis, HServerListRequest hRequest, int iServer) {
pThis->RefreshServer(hRequest, iServer);
}
//-----------------------------------------------------------------------------
// Queries to individual servers directly via IP/Port
//-----------------------------------------------------------------------------
// Request updated ping time and other details from a single server
DLL(HServerQuery) BS_ISteamMatchmakingServers_PingServer(ISteamMatchmakingServers* pThis, uint32 unIP, uint16 usPort, ISteamMatchmakingPingResponse *pRequestServersResponse) {
return pThis->PingServer(unIP, usPort, pRequestServersResponse);
}
// Request the list of players currently playing on a server
DLL(HServerQuery) BS_ISteamMatchmakingServers_PlayerDetails(ISteamMatchmakingServers* pThis, uint32 unIP, uint16 usPort, ISteamMatchmakingPlayersResponse *pRequestServersResponse) {
return pThis->PlayerDetails(unIP, usPort, pRequestServersResponse);
}
// Request the list of rules that the server is running (See ISteamGameServer::SetKeyValue() to set the rules server side)
DLL(HServerQuery) BS_ISteamMatchmakingServers_ServerRules(ISteamMatchmakingServers* pThis, uint32 unIP, uint16 usPort, ISteamMatchmakingRulesResponse *pRequestServersResponse) {
return pThis->ServerRules(unIP, usPort, pRequestServersResponse);
}
// Cancel an outstanding Ping/Players/Rules query from above. You should call this to cancel
// any in-progress requests before destructing a callback object that may have been passed
// to one of the above calls to avoid crashing when callbacks occur.
DLL(void) BS_ISteamMatchmakingServers_CancelServerQuery(ISteamMatchmakingServers* pThis, HServerQuery hServerQuery) {
pThis->CancelServerQuery(hServerQuery);
}
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamMusic*) BS_SteamMusic() { DLL(ISteamMusic*) BS_SteamMusic() {
return SteamMusic(); return SteamMusic();
} }
#pragma message("SteamMusic is not ported yet. TODO!") #pragma message("SteamMusic is not ported yet. TODO!")
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamMusicRemote*) BS_SteamMusicRemote() { DLL(ISteamMusicRemote*) BS_SteamMusicRemote() {
return SteamMusicRemote(); return SteamMusicRemote();
} }
#pragma message("SteamMusicRemote is not ported yet. TODO!") #pragma message("SteamMusicRemote is not ported yet. TODO!")
+98 -98
View File
@@ -1,98 +1,98 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Functions for making connections and sending data between clients, // Purpose: Functions for making connections and sending data between clients,
// traversing NAT's where possible // traversing NAT's where possible
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamNetworking*) BS_SteamNetworking() { DLL(ISteamNetworking*) BS_SteamNetworking() {
return SteamNetworking(); return SteamNetworking();
} }
DLL(ISteamNetworking*) BS_SteamGameServerNetworking() { DLL(ISteamNetworking*) BS_SteamGameServerNetworking() {
return SteamGameServerNetworking(); return SteamGameServerNetworking();
} }
//////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////
// Session-less connection functions // Session-less connection functions
// automatically establishes NAT-traversing or Relay server connections // automatically establishes NAT-traversing or Relay server connections
// Sends a P2P packet to the specified user // Sends a P2P packet to the specified user
// UDP-like, unreliable and a max packet size of 1200 bytes // UDP-like, unreliable and a max packet size of 1200 bytes
// the first packet send may be delayed as the NAT-traversal code runs // the first packet send may be delayed as the NAT-traversal code runs
// if we can't get through to the user, an error will be posted via the callback P2PSessionConnectFail_t // if we can't get through to the user, an error will be posted via the callback P2PSessionConnectFail_t
// see EP2PSend enum above for the descriptions of the different ways of sending packets // see EP2PSend enum above for the descriptions of the different ways of sending packets
// //
// nChannel is a routing number you can use to help route message to different systems - you'll have to call ReadP2PPacket() // nChannel is a routing number you can use to help route message to different systems - you'll have to call ReadP2PPacket()
// with the same channel number in order to retrieve the data on the other end // with the same channel number in order to retrieve the data on the other end
// using different channels to talk to the same user will still use the same underlying p2p connection, saving on resources // using different channels to talk to the same user will still use the same underlying p2p connection, saving on resources
DLL(uint32_t) BS_ISteamNetworking_SendP2PPacket(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, const void* pubData, uint32_t cubData, EP2PSend eP2PSendType, uint32_t nChannel) { DLL(uint32_t) BS_ISteamNetworking_SendP2PPacket(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, const void* pubData, uint32_t cubData, EP2PSend eP2PSendType, uint32_t nChannel) {
return pThis->SendP2PPacket(*pSteamIDRemote, pubData, cubData, eP2PSendType, nChannel); return pThis->SendP2PPacket(*pSteamIDRemote, pubData, cubData, eP2PSendType, nChannel);
} }
// returns true if any data is available for read, and the amount of data that will need to be read // returns true if any data is available for read, and the amount of data that will need to be read
DLL(uint32_t) BS_ISteamNetworking_IsP2PPacketAvailable(ISteamNetworking* pThis, uint32_t* pcubMsgSize, uint32_t nChannel) { DLL(uint32_t) BS_ISteamNetworking_IsP2PPacketAvailable(ISteamNetworking* pThis, uint32_t* pcubMsgSize, uint32_t nChannel) {
return pThis->IsP2PPacketAvailable(pcubMsgSize, nChannel); return pThis->IsP2PPacketAvailable(pcubMsgSize, nChannel);
} }
// reads in a packet that has been sent from another user via SendP2PPacket() // reads in a packet that has been sent from another user via SendP2PPacket()
// returns the size of the message and the steamID of the user who sent it in the last two parameters // returns the size of the message and the steamID of the user who sent it in the last two parameters
// if the buffer passed in is too small, the message will be truncated // if the buffer passed in is too small, the message will be truncated
// this call is not blocking, and will return false if no data is available // this call is not blocking, and will return false if no data is available
DLL(uint32_t) BS_ISteamNetworking_ReadP2PPacket(ISteamNetworking* pThis, void* pubDest, uint32_t cubDest, uint32_t* pcubMsgSize, CSteamID* pSteamIDRemote, uint32_t nChannel) { DLL(uint32_t) BS_ISteamNetworking_ReadP2PPacket(ISteamNetworking* pThis, void** pubDest, uint32_t cubDest, uint32_t* pcubMsgSize, CSteamID* pSteamIDRemote, uint32_t nChannel) {
return pThis->ReadP2PPacket(pubDest, cubDest, pcubMsgSize, pSteamIDRemote, nChannel); return pThis->ReadP2PPacket(*pubDest, cubDest, pcubMsgSize, static_cast<CSteamID*>(pSteamIDRemote), nChannel);
} }
// AcceptP2PSessionWithUser() should only be called in response to a P2PSessionRequest_t callback // AcceptP2PSessionWithUser() should only be called in response to a P2PSessionRequest_t callback
// P2PSessionRequest_t will be posted if another user tries to send you a packet that you haven't talked to yet // P2PSessionRequest_t will be posted if another user tries to send you a packet that you haven't talked to yet
// if you don't want to talk to the user, just ignore the request // if you don't want to talk to the user, just ignore the request
// if the user continues to send you packets, another P2PSessionRequest_t will be posted periodically // if the user continues to send you packets, another P2PSessionRequest_t will be posted periodically
// this may be called multiple times for a single user // this may be called multiple times for a single user
// (if you've called SendP2PPacket() on the other user, this implicitly accepts the session request) // (if you've called SendP2PPacket() on the other user, this implicitly accepts the session request)
DLL(uint32_t) BS_ISteamNetworking_AcceptP2PSessionWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote) { DLL(uint32_t) BS_ISteamNetworking_AcceptP2PSessionWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote) {
return pThis->AcceptP2PSessionWithUser(*pSteamIDRemote); return pThis->AcceptP2PSessionWithUser(*pSteamIDRemote);
} }
// call CloseP2PSessionWithUser() when you're done talking to a user, will free up resources under-the-hood // call CloseP2PSessionWithUser() when you're done talking to a user, will free up resources under-the-hood
// if the remote user tries to send data to you again, another P2PSessionRequest_t callback will be posted // if the remote user tries to send data to you again, another P2PSessionRequest_t callback will be posted
DLL(uint32_t) BS_ISteamNetworking_CloseP2PSessionWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote) { DLL(uint32_t) BS_ISteamNetworking_CloseP2PSessionWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote) {
return pThis->CloseP2PSessionWithUser(*pSteamIDRemote); return pThis->CloseP2PSessionWithUser(*pSteamIDRemote);
} }
// call CloseP2PChannelWithUser() when you're done talking to a user on a specific channel. Once all channels // call CloseP2PChannelWithUser() when you're done talking to a user on a specific channel. Once all channels
// open channels to a user have been closed, the open session to the user will be closed and new data from this // open channels to a user have been closed, the open session to the user will be closed and new data from this
// user will trigger a P2PSessionRequest_t callback // user will trigger a P2PSessionRequest_t callback
DLL(uint32_t) BS_ISteamNetworking_CloseP2PChannelWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, uint32_t nChannel) { DLL(uint32_t) BS_ISteamNetworking_CloseP2PChannelWithUser(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, uint32_t nChannel) {
return pThis->CloseP2PChannelWithUser(*pSteamIDRemote, nChannel); return pThis->CloseP2PChannelWithUser(*pSteamIDRemote, nChannel);
} }
// fills out P2PSessionState_t structure with details about the underlying connection to the user // fills out P2PSessionState_t structure with details about the underlying connection to the user
// should only needed for debugging purposes // should only needed for debugging purposes
// returns false if no connection exists to the specified user // returns false if no connection exists to the specified user
DLL(uint32_t) BS_ISteamNetworking_GetP2PSessionState(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, P2PSessionState_t* pConnectionState) { DLL(uint32_t) BS_ISteamNetworking_GetP2PSessionState(ISteamNetworking* pThis, CSteamID* pSteamIDRemote, P2PSessionState_t* pConnectionState) {
return pThis->GetP2PSessionState(*pSteamIDRemote, pConnectionState); return pThis->GetP2PSessionState(*pSteamIDRemote, pConnectionState);
} }
// Allow P2P connections to fall back to being relayed through the Steam servers if a direct connection // Allow P2P connections to fall back to being relayed through the Steam servers if a direct connection
// or NAT-traversal cannot be established. Only applies to connections created after setting this value, // or NAT-traversal cannot be established. Only applies to connections created after setting this value,
// or to existing connections that need to automatically reconnect after this value is set. // or to existing connections that need to automatically reconnect after this value is set.
// //
// P2P packet relay is allowed by default // P2P packet relay is allowed by default
DLL(uint32_t) BS_ISteamNetworking_AllowP2PPacketRelay(ISteamNetworking* pThis, uint32_t bAllow) { DLL(uint32_t) BS_ISteamNetworking_AllowP2PPacketRelay(ISteamNetworking* pThis, uint32_t bAllow) {
return pThis->AllowP2PPacketRelay(!!bAllow); return pThis->AllowP2PPacketRelay(!!bAllow);
} }
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamRemoteStorage*) BS_SteamRemoteStorage() { DLL(ISteamRemoteStorage*) BS_SteamRemoteStorage() {
return SteamRemoteStorage(); return SteamRemoteStorage();
} }
#pragma message("SteamRemoteStorage is not ported yet. TODO!") #pragma message("SteamRemoteStorage is not ported yet. TODO!")
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamScreenshots*) BS_SteamScreenshots() { DLL(ISteamScreenshots*) BS_SteamScreenshots() {
return SteamScreenshots(); return SteamScreenshots();
} }
#pragma message("SteamScreenshots is not ported yet. TODO!") #pragma message("SteamScreenshots is not ported yet. TODO!")
+28 -28
View File
@@ -1,28 +1,28 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamUGC*) BS_SteamUGC() { DLL(ISteamUGC*) BS_SteamUGC() {
return SteamUGC(); return SteamUGC();
} }
DLL(ISteamUGC*) BS_SteamGameServerUGC() { DLL(ISteamUGC*) BS_SteamGameServerUGC() {
return SteamGameServerUGC(); return SteamGameServerUGC();
} }
#pragma message("SteamUGC is not ported yet. TODO!") #pragma message("SteamUGC is not ported yet. TODO!")
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamUnifiedMessages*) BS_SteamUnifiedMessages() { DLL(ISteamUnifiedMessages*) BS_SteamUnifiedMessages() {
return SteamUnifiedMessages(); return SteamUnifiedMessages();
} }
#pragma message("SteamUnifiedMessages is not ported yet. TODO!") #pragma message("SteamUnifiedMessages is not ported yet. TODO!")
+214 -214
View File
@@ -1,214 +1,214 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Functions for accessing and manipulating a steam account // Purpose: Functions for accessing and manipulating a steam account
// associated with one client instance // associated with one client instance
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamUser*) BS_SteamUser() { DLL(ISteamUser*) BS_SteamUser() {
return SteamUser(); return SteamUser();
} }
// returns the HSteamUser this interface represents // returns the HSteamUser this interface represents
// this is only used internally by the API, and by a few select interfaces that support multi-user // this is only used internally by the API, and by a few select interfaces that support multi-user
DLL(HSteamUser) BS_ISteamUser_GetHSteamUser( ISteamUser* lpSteamUser ) { DLL(HSteamUser) BS_ISteamUser_GetHSteamUser( ISteamUser* lpSteamUser ) {
return lpSteamUser->GetHSteamUser( ); return lpSteamUser->GetHSteamUser( );
} }
// returns true if the Steam client current has a live connection to the Steam servers. // returns true if the Steam client current has a live connection to the Steam servers.
// If false, it means there is no active connection due to either a networking issue on the local machine, or the Steam server is down/busy. // If false, it means there is no active connection due to either a networking issue on the local machine, or the Steam server is down/busy.
// The Steam client will automatically be trying to recreate the connection as often as possible. // The Steam client will automatically be trying to recreate the connection as often as possible.
DLL(uint32_t) BS_ISteamUser_IsLoggedOn( ISteamUser* lpSteamUser ) { DLL(uint32_t) BS_ISteamUser_IsLoggedOn( ISteamUser* lpSteamUser ) {
return lpSteamUser->BLoggedOn( ); return lpSteamUser->BLoggedOn( );
} }
// returns the CSteamID of the account currently logged into the Steam client // returns the CSteamID of the account currently logged into the Steam client
// a CSteamID is a unique identifier for an account, and used to differentiate users in all parts of the Steamworks API // a CSteamID is a unique identifier for an account, and used to differentiate users in all parts of the Steamworks API
DLL(CSteamID*) BS_ISteamUser_GetSteamID( ISteamUser* lpSteamUser ) { DLL(CSteamID*) BS_ISteamUser_GetSteamID( ISteamUser* lpSteamUser ) {
return &(lpSteamUser->GetSteamID( )); return &(lpSteamUser->GetSteamID( ));
} }
// Multiplayer Authentication functions // Multiplayer Authentication functions
// InitiateGameConnection() starts the state machine for authenticating the game client with the game server // InitiateGameConnection() starts the state machine for authenticating the game client with the game server
// It is the client portion of a three-way handshake between the client, the game server, and the steam servers // It is the client portion of a three-way handshake between the client, the game server, and the steam servers
// //
// Parameters: // Parameters:
// void *pAuthBlob - a pointer to empty memory that will be filled in with the authentication token. // void *pAuthBlob - a pointer to empty memory that will be filled in with the authentication token.
// int cbMaxAuthBlob - the number of bytes of allocated memory in pBlob. Should be at least 2048 bytes. // int cbMaxAuthBlob - the number of bytes of allocated memory in pBlob. Should be at least 2048 bytes.
// CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client // CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client
// CGameID gameID - the ID of the current game. For games without mods, this is just CGameID( <appID> ) // CGameID gameID - the ID of the current game. For games without mods, this is just CGameID( <appID> )
// uint32 unIPServer, uint16 usPortServer - the IP address of the game server // uint32 unIPServer, uint16 usPortServer - the IP address of the game server
// bool bSecure - whether or not the client thinks that the game server is reporting itself as secure (i.e. VAC is running) // bool bSecure - whether or not the client thinks that the game server is reporting itself as secure (i.e. VAC is running)
// //
// return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed // return value - returns the number of bytes written to pBlob. If the return is 0, then the buffer passed in was too small, and the call has failed
// The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process. // The contents of pBlob should then be sent to the game server, for it to use to complete the authentication process.
DLL(uint32_t) BS_ISteamUser_InitiateGameConnection( ISteamUser* lpSteamUser, void* pAuthBlob, uint32_t cbMaxAuthBlob, CSteamID* SteamIDGameServer, uint32_t unIPServer, uint16_t usPortServer, uint32_t bSecure ) { DLL(uint32_t) BS_ISteamUser_InitiateGameConnection( ISteamUser* lpSteamUser, void* pAuthBlob, uint32_t cbMaxAuthBlob, CSteamID* SteamIDGameServer, uint32_t unIPServer, uint16_t usPortServer, uint32_t bSecure ) {
return lpSteamUser->InitiateGameConnection( pAuthBlob, cbMaxAuthBlob, *SteamIDGameServer, unIPServer, usPortServer, bSecure != 0 ); return lpSteamUser->InitiateGameConnection( pAuthBlob, cbMaxAuthBlob, *SteamIDGameServer, unIPServer, usPortServer, bSecure != 0 );
} }
// notify of disconnect // notify of disconnect
// needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call // needs to occur when the game client leaves the specified game server, needs to match with the InitiateGameConnection() call
DLL(void) BS_ISteamUser_TerminateGameConnection( ISteamUser* lpSteamUser, uint32_t unIPServer, uint16_t usPortServer ) { DLL(void) BS_ISteamUser_TerminateGameConnection( ISteamUser* lpSteamUser, uint32_t unIPServer, uint16_t usPortServer ) {
lpSteamUser->TerminateGameConnection( unIPServer, usPortServer ); lpSteamUser->TerminateGameConnection( unIPServer, usPortServer );
} }
// Legacy functions // Legacy functions
// used by only a few games to track usage events // used by only a few games to track usage events
DLL(void) BS_ISteamUser_TrackAppUsageEvent( ISteamUser* lpSteamUser, CGameID* gameId, uint32_t eAppUsageEvent, const char* pchExtraInfo ) { DLL(void) BS_ISteamUser_TrackAppUsageEvent( ISteamUser* lpSteamUser, CGameID* gameId, uint32_t eAppUsageEvent, const char* pchExtraInfo ) {
lpSteamUser->TrackAppUsageEvent( *gameId, eAppUsageEvent, pchExtraInfo ); lpSteamUser->TrackAppUsageEvent( *gameId, eAppUsageEvent, pchExtraInfo );
} }
// get the local storage folder for current Steam account to write application data, e.g. save games, configs etc. // get the local storage folder for current Steam account to write application data, e.g. save games, configs etc.
// this will usually be something like "C:\Progam Files\Steam\userdata\<SteamID>\<AppID>\local" // this will usually be something like "C:\Progam Files\Steam\userdata\<SteamID>\<AppID>\local"
DLL(uint32_t) BS_ISteamUser_GetUserDataFolder( ISteamUser* lpSteamUser, char* pchBuffer, uint32_t cubBuffer ) { DLL(uint32_t) BS_ISteamUser_GetUserDataFolder( ISteamUser* lpSteamUser, char* pchBuffer, uint32_t cubBuffer ) {
return lpSteamUser->GetUserDataFolder( pchBuffer, cubBuffer ); return lpSteamUser->GetUserDataFolder( pchBuffer, cubBuffer );
} }
// Starts voice recording. Once started, use GetVoice() to get the data // Starts voice recording. Once started, use GetVoice() to get the data
DLL(void) BS_ISteamUser_StartVoiceRecording( ISteamUser* lpSteamUser ) { DLL(void) BS_ISteamUser_StartVoiceRecording( ISteamUser* lpSteamUser ) {
lpSteamUser->StartVoiceRecording( ); lpSteamUser->StartVoiceRecording( );
} }
// Stops voice recording. Because people often release push-to-talk keys early, the system will keep recording for // Stops voice recording. Because people often release push-to-talk keys early, the system will keep recording for
// a little bit after this function is called. GetVoice() should continue to be called until it returns // a little bit after this function is called. GetVoice() should continue to be called until it returns
// k_eVoiceResultNotRecording // k_eVoiceResultNotRecording
DLL(void) BS_ISteamUser_StopVoiceRecording( ISteamUser* lpSteamUser ) { DLL(void) BS_ISteamUser_StopVoiceRecording( ISteamUser* lpSteamUser ) {
lpSteamUser->StopVoiceRecording( ); lpSteamUser->StopVoiceRecording( );
} }
// Determine the amount of captured audio data that is available in bytes. // Determine the amount of captured audio data that is available in bytes.
// This provides both the compressed and uncompressed data. Please note that the uncompressed // This provides both the compressed and uncompressed data. Please note that the uncompressed
// data is not the raw feed from the microphone: data may only be available if audible // data is not the raw feed from the microphone: data may only be available if audible
// levels of speech are detected. // levels of speech are detected.
// nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case) // nUncompressedVoiceDesiredSampleRate is necessary to know the number of bytes to return in pcbUncompressed - can be set to 0 if you don't need uncompressed (the usual case)
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate
DLL(EVoiceResult) BS_ISteamUser_GetAvailableVoice( ISteamUser* lpSteamUser, uint32_t* pcbCompressed, uint32_t* pcbUncompressed, uint32_t nUncompressedVoiceDesiredSampleRate ) { DLL(EVoiceResult) BS_ISteamUser_GetAvailableVoice( ISteamUser* lpSteamUser, uint32_t* pcbCompressed, uint32_t* pcbUncompressed, uint32_t nUncompressedVoiceDesiredSampleRate ) {
return lpSteamUser->GetAvailableVoice( pcbCompressed, pcbUncompressed, nUncompressedVoiceDesiredSampleRate ); return lpSteamUser->GetAvailableVoice( pcbCompressed, pcbUncompressed, nUncompressedVoiceDesiredSampleRate );
} }
// Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to // Gets the latest voice data from the microphone. Compressed data is an arbitrary format, and is meant to be handed back to
// DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format. // DecompressVoice() for playback later as a binary blob. Uncompressed data is 16-bit, signed integer, 11025Hz PCM format.
// Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible // Please note that the uncompressed data is not the raw feed from the microphone: data may only be available if audible
// levels of speech are detected, and may have passed through denoising filters, etc. // levels of speech are detected, and may have passed through denoising filters, etc.
// This function should be called as often as possible once recording has started; once per frame at least. // This function should be called as often as possible once recording has started; once per frame at least.
// nBytesWritten is set to the number of bytes written to pDestBuffer. // nBytesWritten is set to the number of bytes written to pDestBuffer.
// nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer. // nUncompressedBytesWritten is set to the number of bytes written to pUncompressedDestBuffer.
// You must grab both compressed and uncompressed here at the same time, if you want both. // You must grab both compressed and uncompressed here at the same time, if you want both.
// Matching data that is not read during this call will be thrown away. // Matching data that is not read during this call will be thrown away.
// GetAvailableVoice() can be used to determine how much data is actually available. // GetAvailableVoice() can be used to determine how much data is actually available.
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nUncompressedVoiceDesiredSampleRate
DLL(EVoiceResult) BS_ISteamUser_GetVoice( ISteamUser* lpSteamUser, uint32_t bWantCompressed, void *pDestBuffer, uint32_t cbDestBufferSize, uint32_t *nBytesWritten, uint32_t bWantUncompressed, void *pUncompressedDestBuffer, uint32_t cbUncompressedDestBufferSize, uint32_t *nUncompressBytesWritten, uint32_t nUncompressedVoiceDesiredSampleRate ) { DLL(EVoiceResult) BS_ISteamUser_GetVoice( ISteamUser* lpSteamUser, uint32_t bWantCompressed, void *pDestBuffer, uint32_t cbDestBufferSize, uint32_t *nBytesWritten, uint32_t bWantUncompressed, void *pUncompressedDestBuffer, uint32_t cbUncompressedDestBufferSize, uint32_t *nUncompressBytesWritten, uint32_t nUncompressedVoiceDesiredSampleRate ) {
return lpSteamUser->GetVoice( bWantCompressed != 0, pDestBuffer, cbDestBufferSize, nBytesWritten, bWantUncompressed != 0, pUncompressedDestBuffer, cbUncompressedDestBufferSize, nUncompressBytesWritten, nUncompressedVoiceDesiredSampleRate ); return lpSteamUser->GetVoice( bWantCompressed != 0, pDestBuffer, cbDestBufferSize, nBytesWritten, bWantUncompressed != 0, pUncompressedDestBuffer, cbUncompressedDestBufferSize, nUncompressBytesWritten, nUncompressedVoiceDesiredSampleRate );
} }
// Decompresses a chunk of compressed data produced by GetVoice(). // Decompresses a chunk of compressed data produced by GetVoice().
// nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall. // nBytesWritten is set to the number of bytes written to pDestBuffer unless the return value is k_EVoiceResultBufferTooSmall.
// In that case, nBytesWritten is set to the size of the buffer required to decompress the given // In that case, nBytesWritten is set to the size of the buffer required to decompress the given
// data. The suggested buffer size for the destination buffer is 22 kilobytes. // data. The suggested buffer size for the destination buffer is 22 kilobytes.
// The output format of the data is 16-bit signed at the requested samples per second. // The output format of the data is 16-bit signed at the requested samples per second.
// If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate // If you're upgrading from an older Steamworks API, you'll want to pass in 11025 to nDesiredSampleRate
DLL(EVoiceResult) BS_ISteamUser_DecompressVoice( ISteamUser* lpSteamUser, const void *pCompressed, uint32_t cbCompressed, void *pDestBuffer, uint32_t cbDestBufferSize, uint32_t *nBytesWritten, uint32_t nDesiredSampleRate ) { DLL(EVoiceResult) BS_ISteamUser_DecompressVoice( ISteamUser* lpSteamUser, const void *pCompressed, uint32_t cbCompressed, void *pDestBuffer, uint32_t cbDestBufferSize, uint32_t *nBytesWritten, uint32_t nDesiredSampleRate ) {
return lpSteamUser->DecompressVoice( pCompressed, cbCompressed, pDestBuffer, cbDestBufferSize, nBytesWritten, nDesiredSampleRate ); return lpSteamUser->DecompressVoice( pCompressed, cbCompressed, pDestBuffer, cbDestBufferSize, nBytesWritten, nDesiredSampleRate );
} }
// This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results // This returns the frequency of the voice data as it's stored internally; calling DecompressVoice() with this size will yield the best results
DLL(uint32_t) BS_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* lpSteamUser ) { DLL(uint32_t) BS_ISteamUser_GetVoiceOptimalSampleRate( ISteamUser* lpSteamUser ) {
return lpSteamUser->GetVoiceOptimalSampleRate( ); return lpSteamUser->GetVoiceOptimalSampleRate( );
} }
// Retrieve ticket to be sent to the entity who wishes to authenticate you. // Retrieve ticket to be sent to the entity who wishes to authenticate you.
// pcbTicket retrieves the length of the actual ticket. // pcbTicket retrieves the length of the actual ticket.
DLL(HAuthTicket) BS_ISteamUser_GetAuthSessionTicket( ISteamUser* lpSteamUser, void* pTicket, uint32_t cbMaxTicket, uint32_t* pcbTicket ) { DLL(HAuthTicket) BS_ISteamUser_GetAuthSessionTicket( ISteamUser* lpSteamUser, void* pTicket, uint32_t cbMaxTicket, uint32_t* pcbTicket ) {
return lpSteamUser->GetAuthSessionTicket( pTicket, cbMaxTicket, pcbTicket ); return lpSteamUser->GetAuthSessionTicket( pTicket, cbMaxTicket, pcbTicket );
} }
// Authenticate ticket from entity steamID to be sure it is valid and isnt reused // Authenticate ticket from entity steamID to be sure it is valid and isnt reused
// Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse ) // Registers for callbacks if the entity goes offline or cancels the ticket ( see ValidateAuthTicketResponse_t callback and EAuthSessionResponse )
DLL(EBeginAuthSessionResult) BS_ISteamUser_BeginAuthSession( ISteamUser* lpSteamUser, const void *pAuthTicket, uint32_t cbAuthTicket, CSteamID* steamID ) { DLL(EBeginAuthSessionResult) BS_ISteamUser_BeginAuthSession( ISteamUser* lpSteamUser, const void* pAuthTicket, uint32_t cbAuthTicket, CSteamID* steamID ) {
return lpSteamUser->BeginAuthSession( pAuthTicket, cbAuthTicket, *steamID ); return lpSteamUser->BeginAuthSession( pAuthTicket, cbAuthTicket, *steamID );
} }
// Stop tracking started by BeginAuthSession - called when no longer playing game with this entity // Stop tracking started by BeginAuthSession - called when no longer playing game with this entity
DLL(void) BS_ISteamUser_EndAuthSession( ISteamUser* lpSteamUser, CSteamID* steamID ) { DLL(void) BS_ISteamUser_EndAuthSession( ISteamUser* lpSteamUser, CSteamID* steamID ) {
lpSteamUser->EndAuthSession( *steamID ); lpSteamUser->EndAuthSession( *steamID );
} }
// Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to // Cancel auth ticket from GetAuthSessionTicket, called when no longer playing game with the entity you gave the ticket to
DLL(void) BS_ISteamUser_CancelAuthTicket( ISteamUser* lpSteamUser, HAuthTicket hAuthTicket ) { DLL(void) BS_ISteamUser_CancelAuthTicket( ISteamUser* lpSteamUser, HAuthTicket hAuthTicket ) {
lpSteamUser->CancelAuthTicket( hAuthTicket ); lpSteamUser->CancelAuthTicket( hAuthTicket );
} }
// After receiving a user's authentication data, and passing it to BeginAuthSession, use this function // After receiving a user's authentication data, and passing it to BeginAuthSession, use this function
// to determine if the user owns downloadable content specified by the provided AppID. // to determine if the user owns downloadable content specified by the provided AppID.
DLL(EUserHasLicenseForAppResult) BS_ISteamUser_UserHasLicenseForApp( ISteamUser* lpSteamUser, CSteamID* steamID, AppId_t appID ) { DLL(EUserHasLicenseForAppResult) BS_ISteamUser_UserHasLicenseForApp( ISteamUser* lpSteamUser, CSteamID* steamID, AppId_t appID ) {
return lpSteamUser->UserHasLicenseForApp( *steamID, appID ); return lpSteamUser->UserHasLicenseForApp( *steamID, appID );
} }
// returns true if this users looks like they are behind a NAT device. Only valid once the user has connected to steam // returns true if this users looks like they are behind a NAT device. Only valid once the user has connected to steam
// (i.e a SteamServersConnected_t has been issued) and may not catch all forms of NAT. // (i.e a SteamServersConnected_t has been issued) and may not catch all forms of NAT.
DLL(uint32_t) BS_ISteamUser_IsBehindNAT( ISteamUser* lpSteamUser ) { DLL(uint32_t) BS_ISteamUser_IsBehindNAT( ISteamUser* lpSteamUser ) {
return lpSteamUser->BIsBehindNAT( ); return lpSteamUser->BIsBehindNAT( );
} }
// set data to be replicated to friends so that they can join your game // set data to be replicated to friends so that they can join your game
// CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client // CSteamID steamIDGameServer - the steamID of the game server, received from the game server by the client
// uint32 unIPServer, uint16 usPortServer - the IP address of the game server // uint32 unIPServer, uint16 usPortServer - the IP address of the game server
DLL(void) BS_ISteamUser_AdvertiseGame( ISteamUser* lpSteamUser, CSteamID* steamIDGameServer, uint32_t unIPServer, uint16_t usPortServer ) { DLL(void) BS_ISteamUser_AdvertiseGame( ISteamUser* lpSteamUser, CSteamID* steamIDGameServer, uint32_t unIPServer, uint16_t usPortServer ) {
lpSteamUser->AdvertiseGame( *steamIDGameServer, unIPServer, usPortServer ); lpSteamUser->AdvertiseGame( *steamIDGameServer, unIPServer, usPortServer );
} }
// Requests a ticket encrypted with an app specific shared key // Requests a ticket encrypted with an app specific shared key
// pDataToInclude, cbDataToInclude will be encrypted into the ticket // pDataToInclude, cbDataToInclude will be encrypted into the ticket
// ( This is asynchronous, you must wait for the ticket to be completed by the server ) // ( This is asynchronous, you must wait for the ticket to be completed by the server )
//CALL_RESULT( EncryptedAppTicketResponse_t ) //CALL_RESULT( EncryptedAppTicketResponse_t )
DLL(SteamAPICall_t*) BS_ISteamUser_RequestEncryptedAppTicket( ISteamUser* lpSteamUser, void* pDataToInclude, uint32_t cbDataToInclude ) { DLL(SteamAPICall_t*) BS_ISteamUser_RequestEncryptedAppTicket( ISteamUser* lpSteamUser, void* pDataToInclude, uint32_t cbDataToInclude ) {
return new uint64_t(lpSteamUser->RequestEncryptedAppTicket( pDataToInclude, cbDataToInclude )); return new uint64_t(lpSteamUser->RequestEncryptedAppTicket( pDataToInclude, cbDataToInclude ));
} }
// retrieve a finished ticket // retrieve a finished ticket
DLL(uint32_t) BS_ISteamUser_GetEncryptedAppTicket( ISteamUser* lpSteamUser, void *pTicket, uint32_t cbMaxTicket, uint32_t* pcbTicket ) { DLL(uint32_t) BS_ISteamUser_GetEncryptedAppTicket( ISteamUser* lpSteamUser, void *pTicket, uint32_t cbMaxTicket, uint32_t* pcbTicket ) {
return lpSteamUser->GetEncryptedAppTicket( pTicket, cbMaxTicket, pcbTicket ); return lpSteamUser->GetEncryptedAppTicket( pTicket, cbMaxTicket, pcbTicket );
} }
// Trading Card badges data access // Trading Card badges data access
// if you only have one set of cards, the series will be 1 // if you only have one set of cards, the series will be 1
// the user has can have two different badges for a series; the regular (max level 5) and the foil (max level 1) // the user has can have two different badges for a series; the regular (max level 5) and the foil (max level 1)
DLL(uint32_t) BS_ISteamUser_GetGameBadgeLevel( ISteamUser* lpSteamUser, uint32_t nSeries, uint32_t bFoil ) { DLL(uint32_t) BS_ISteamUser_GetGameBadgeLevel( ISteamUser* lpSteamUser, uint32_t nSeries, uint32_t bFoil ) {
return lpSteamUser->GetGameBadgeLevel( nSeries, bFoil != 0 ); return lpSteamUser->GetGameBadgeLevel( nSeries, bFoil != 0 );
} }
// gets the Steam Level of the user, as shown on their profile // gets the Steam Level of the user, as shown on their profile
DLL(uint32_t) BS_ISteamUser_GetPlayerSteamLevel( ISteamUser* lpSteamUser ) { DLL(uint32_t) BS_ISteamUser_GetPlayerSteamLevel( ISteamUser* lpSteamUser ) {
return lpSteamUser->GetPlayerSteamLevel( ); return lpSteamUser->GetPlayerSteamLevel( );
} }
// Requests a URL which authenticates an in-game browser for store check-out, // Requests a URL which authenticates an in-game browser for store check-out,
// and then redirects to the specified URL. As long as the in-game browser // and then redirects to the specified URL. As long as the in-game browser
// accepts and handles session cookies, Steam microtransaction checkout pages // accepts and handles session cookies, Steam microtransaction checkout pages
// will automatically recognize the user instead of presenting a login page. // will automatically recognize the user instead of presenting a login page.
// The result of this API call will be a StoreAuthURLResponse_t callback. // The result of this API call will be a StoreAuthURLResponse_t callback.
// NOTE: The URL has a very short lifetime to prevent history-snooping attacks, // NOTE: The URL has a very short lifetime to prevent history-snooping attacks,
// so you should only call this API when you are about to launch the browser, // so you should only call this API when you are about to launch the browser,
// or else immediately navigate to the result URL using a hidden browser window. // or else immediately navigate to the result URL using a hidden browser window.
// NOTE 2: The resulting authorization cookie has an expiration time of one day, // NOTE 2: The resulting authorization cookie has an expiration time of one day,
// so it would be a good idea to request and visit a new auth URL every 12 hours. // so it would be a good idea to request and visit a new auth URL every 12 hours.
DLL(SteamAPICall_t*) BS_ISteamUser_RequestStoreAuthURL( ISteamUser* lpSteamUser, const char* pchRedirectURL ) { DLL(SteamAPICall_t*) BS_ISteamUser_RequestStoreAuthURL( ISteamUser* lpSteamUser, const char* pchRedirectURL ) {
return new uint64_t(lpSteamUser->RequestStoreAuthURL( pchRedirectURL )); return new uint64_t(lpSteamUser->RequestStoreAuthURL( pchRedirectURL ));
} }
+307 -307
View File
@@ -1,308 +1,308 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Purpose: Functions for accessing stats, achievements, and leaderboard information // Purpose: Functions for accessing stats, achievements, and leaderboard information
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
DLL(ISteamUserStats*) BS_SteamUserStats() { DLL(ISteamUserStats*) BS_SteamUserStats() {
return SteamUserStats(); return SteamUserStats();
} }
// Ask the server to send down this user's data and achievements for this game // Ask the server to send down this user's data and achievements for this game
//CALL_BACK(UserStatsReceived_t) //CALL_BACK(UserStatsReceived_t)
DLL(uint32_t) BS_ISteamUserStats_RequestCurrentStats( ISteamUserStats* lpSteamUserStats ) { DLL(uint32_t) BS_ISteamUserStats_RequestCurrentStats( ISteamUserStats* lpSteamUserStats ) {
return lpSteamUserStats->RequestCurrentStats( ); return lpSteamUserStats->RequestCurrentStats( );
} }
// Data accessors // Data accessors
DLL(uint32_t) BS_ISteamUserStats_GetStat( ISteamUserStats* lpSteamUserStats, const char* pchName, int32_t* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetStat( ISteamUserStats* lpSteamUserStats, const char* pchName, int32_t* pData ) {
return lpSteamUserStats->GetStat( pchName, pData ); return lpSteamUserStats->GetStat( pchName, pData );
} }
DLL(uint32_t) BS_ISteamUserStats_GetStatF( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetStatF( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t* pData ) {
return lpSteamUserStats->GetStat( pchName, pData ); return lpSteamUserStats->GetStat( pchName, pData );
} }
// Set / update data // Set / update data
DLL(uint32_t) BS_ISteamUserStats_SetStat( ISteamUserStats* lpSteamUserStats, const char* pchName, int32_t pData ) { DLL(uint32_t) BS_ISteamUserStats_SetStat( ISteamUserStats* lpSteamUserStats, const char* pchName, int32_t pData ) {
return lpSteamUserStats->SetStat( pchName, pData ); return lpSteamUserStats->SetStat( pchName, pData );
} }
DLL(uint32_t) BS_ISteamUserStats_SetStatF( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t pData ) { DLL(uint32_t) BS_ISteamUserStats_SetStatF( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t pData ) {
return lpSteamUserStats->SetStat( pchName, pData ); return lpSteamUserStats->SetStat( pchName, pData );
} }
DLL(uint32_t) BS_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t flCountThisSession, double_t* dSessionLength ) { DLL(uint32_t) BS_ISteamUserStats_UpdateAvgRateStat( ISteamUserStats* lpSteamUserStats, const char* pchName, float_t flCountThisSession, double_t* dSessionLength ) {
return lpSteamUserStats->UpdateAvgRateStat( pchName, flCountThisSession, *dSessionLength ); return lpSteamUserStats->UpdateAvgRateStat( pchName, flCountThisSession, *dSessionLength );
} }
// Achievement flag accessors // Achievement flag accessors
DLL(uint32_t) BS_ISteamUserStats_GetAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName, bool* pbAchieved ) { DLL(uint32_t) BS_ISteamUserStats_GetAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName, bool* pbAchieved ) {
return lpSteamUserStats->GetAchievement( pchName, (bool*)pbAchieved ); return lpSteamUserStats->GetAchievement( pchName, (bool*)pbAchieved );
} }
DLL(uint32_t) BS_ISteamUserStats_SetAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName ) { DLL(uint32_t) BS_ISteamUserStats_SetAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName ) {
return lpSteamUserStats->SetAchievement( pchName ); return lpSteamUserStats->SetAchievement( pchName );
} }
DLL(uint32_t) BS_ISteamUserStats_ClearAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName ) { DLL(uint32_t) BS_ISteamUserStats_ClearAchievement( ISteamUserStats* lpSteamUserStats, const char* pchName ) {
return lpSteamUserStats->ClearAchievement( pchName ); return lpSteamUserStats->ClearAchievement( pchName );
} }
// Get the achievement status, and the time it was unlocked if unlocked. // Get the achievement status, and the time it was unlocked if unlocked.
// If the return value is true, but the unlock time is zero, that means it was unlocked before Steam // If the return value is true, but the unlock time is zero, that means it was unlocked before Steam
// began tracking achievement unlock times (December 2009). Time is seconds since January 1, 1970. // began tracking achievement unlock times (December 2009). Time is seconds since January 1, 1970.
DLL(uint32_t) BS_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* lpSteamUserStats, const char* pchName, bool* pbAchieved, uint32_t* punUnlockTime ) { DLL(uint32_t) BS_ISteamUserStats_GetAchievementAndUnlockTime( ISteamUserStats* lpSteamUserStats, const char* pchName, bool* pbAchieved, uint32_t* punUnlockTime ) {
return lpSteamUserStats->GetAchievementAndUnlockTime( pchName, (bool*)pbAchieved, punUnlockTime ); return lpSteamUserStats->GetAchievementAndUnlockTime( pchName, (bool*)pbAchieved, punUnlockTime );
} }
// Store the current data on the server, will get a callback when set // Store the current data on the server, will get a callback when set
// And one callback for every new achievement // And one callback for every new achievement
// //
// If the callback has a result of k_EResultInvalidParam, one or more stats // If the callback has a result of k_EResultInvalidParam, one or more stats
// uploaded has been rejected, either because they broke constraints // uploaded has been rejected, either because they broke constraints
// or were out of date. In this case the server sends back updated values. // or were out of date. In this case the server sends back updated values.
// The stats should be re-iterated to keep in sync. // The stats should be re-iterated to keep in sync.
DLL(uint32_t) BS_ISteamUserStats_StoreStats( ISteamUserStats* lpSteamUserStats ) { DLL(uint32_t) BS_ISteamUserStats_StoreStats( ISteamUserStats* lpSteamUserStats ) {
return lpSteamUserStats->StoreStats( ); return lpSteamUserStats->StoreStats( );
} }
// Achievement / GroupAchievement metadata // Achievement / GroupAchievement metadata
// Gets the icon of the achievement, which is a handle to be used in ISteamUtils::GetImageRGBA(), or 0 if none set. // Gets the icon of the achievement, which is a handle to be used in ISteamUtils::GetImageRGBA(), or 0 if none set.
// A return value of 0 may indicate we are still fetching data, and you can wait for the UserAchievementIconFetched_t callback // A return value of 0 may indicate we are still fetching data, and you can wait for the UserAchievementIconFetched_t callback
// which will notify you when the bits are ready. If the callback still returns zero, then there is no image set for the // which will notify you when the bits are ready. If the callback still returns zero, then there is no image set for the
// specified achievement. // specified achievement.
DLL(uint32_t) BS_ISteamUserStats_GetAchievementIcon( ISteamUserStats* lpSteamUserStats, const char* pchName ) { DLL(uint32_t) BS_ISteamUserStats_GetAchievementIcon( ISteamUserStats* lpSteamUserStats, const char* pchName ) {
return lpSteamUserStats->GetAchievementIcon( pchName ); return lpSteamUserStats->GetAchievementIcon( pchName );
} }
// Get general attributes for an achievement. Accepts the following keys: // Get general attributes for an achievement. Accepts the following keys:
// - "name" and "desc" for retrieving the localized achievement name and description (returned in UTF8) // - "name" and "desc" for retrieving the localized achievement name and description (returned in UTF8)
// - "hidden" for retrieving if an achievement is hidden (returns "0" when not hidden, "1" when hidden) // - "hidden" for retrieving if an achievement is hidden (returns "0" when not hidden, "1" when hidden)
DLL(const char*) BS_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* lpSteamUserStats, const char* pchName, const char* pchKey ) { DLL(const char*) BS_ISteamUserStats_GetAchievementDisplayAttribute( ISteamUserStats* lpSteamUserStats, const char* pchName, const char* pchKey ) {
return lpSteamUserStats->GetAchievementDisplayAttribute( pchName, pchKey ); return lpSteamUserStats->GetAchievementDisplayAttribute( pchName, pchKey );
} }
// Achievement progress - triggers an AchievementProgress callback, that is all. // Achievement progress - triggers an AchievementProgress callback, that is all.
// Calling this w/ N out of N progress will NOT set the achievement, the game must still do that. // Calling this w/ N out of N progress will NOT set the achievement, the game must still do that.
DLL(uint32_t) BS_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* lpSteamUserStats, const char* pchName, uint32_t nCurProgress, uint32_t nMaxProgress ) { DLL(uint32_t) BS_ISteamUserStats_IndicateAchievementProgress( ISteamUserStats* lpSteamUserStats, const char* pchName, uint32_t nCurProgress, uint32_t nMaxProgress ) {
return lpSteamUserStats->IndicateAchievementProgress( pchName, nCurProgress, nMaxProgress ); return lpSteamUserStats->IndicateAchievementProgress( pchName, nCurProgress, nMaxProgress );
} }
// Used for iterating achievements. In general games should not need these functions because they should have a // Used for iterating achievements. In general games should not need these functions because they should have a
// list of existing achievements compiled into them // list of existing achievements compiled into them
DLL(uint32_t) BS_ISteamUserStats_GetNumAchievements( ISteamUserStats* lpSteamUserStats ) { DLL(uint32_t) BS_ISteamUserStats_GetNumAchievements( ISteamUserStats* lpSteamUserStats ) {
return lpSteamUserStats->GetNumAchievements( ); return lpSteamUserStats->GetNumAchievements( );
} }
// Get achievement name iAchievement in [0,GetNumAchievements) // Get achievement name iAchievement in [0,GetNumAchievements)
DLL(const char*) BS_ISteamUserStats_GetAchievementName( ISteamUserStats* lpSteamUserStats, uint32_t iAchievement ) { DLL(const char*) BS_ISteamUserStats_GetAchievementName( ISteamUserStats* lpSteamUserStats, uint32_t iAchievement ) {
return lpSteamUserStats->GetAchievementName( iAchievement ); return lpSteamUserStats->GetAchievementName( iAchievement );
} }
// Friends stats & achievements // Friends stats & achievements
// downloads stats for the user // downloads stats for the user
// returns a UserStatsReceived_t received when completed // returns a UserStatsReceived_t received when completed
// if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail // if the other user has no stats, UserStatsReceived_t.m_eResult will be set to k_EResultFail
// these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data // these stats won't be auto-updated; you'll need to call RequestUserStats() again to refresh any data
//CALL_RESULT(UserStatsReceived_t) //CALL_RESULT(UserStatsReceived_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestUserStats( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestUserStats( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser ) {
return new uint64_t( lpSteamUserStats->RequestUserStats( *steamIDUser ) ); return new uint64_t( lpSteamUserStats->RequestUserStats( *steamIDUser ) );
} }
// requests stat information for a user, usable after a successful call to RequestUserStats() // requests stat information for a user, usable after a successful call to RequestUserStats()
DLL(uint32_t) BS_ISteamUserStats_GetUserStat( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetUserStat( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, uint32_t* pData ) {
return lpSteamUserStats->GetUserStat( *steamIDUser, pchName, (int32_t*)pData ); return lpSteamUserStats->GetUserStat( *steamIDUser, pchName, (int32_t*)pData );
} }
DLL(uint32_t) BS_ISteamUserStats_GetUserStatF( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, float_t* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetUserStatF( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, float_t* pData ) {
return lpSteamUserStats->GetUserStat( *steamIDUser, pchName, pData ); return lpSteamUserStats->GetUserStat( *steamIDUser, pchName, pData );
} }
DLL(uint32_t) BS_ISteamUserStats_GetUserAchievement( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, bool* pbAchieved ) { DLL(uint32_t) BS_ISteamUserStats_GetUserAchievement( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, bool* pbAchieved ) {
return lpSteamUserStats->GetUserAchievement( *steamIDUser, pchName, (bool*)pbAchieved ); return lpSteamUserStats->GetUserAchievement( *steamIDUser, pchName, (bool*)pbAchieved );
} }
// See notes for GetAchievementAndUnlockTime above // See notes for GetAchievementAndUnlockTime above
DLL(uint32_t) BS_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, bool* pbAchieved, uint32_t* punUnlockTime ) { DLL(uint32_t) BS_ISteamUserStats_GetUserAchievementAndUnlockTime( ISteamUserStats* lpSteamUserStats, CSteamID* steamIDUser, const char* pchName, bool* pbAchieved, uint32_t* punUnlockTime ) {
return lpSteamUserStats->GetUserAchievementAndUnlockTime( *steamIDUser, pchName, (bool*)pbAchieved, punUnlockTime ); return lpSteamUserStats->GetUserAchievementAndUnlockTime( *steamIDUser, pchName, (bool*)pbAchieved, punUnlockTime );
} }
// Reset stats // Reset stats
DLL(uint32_t) BS_ISteamUserStats_ResetAllStats( ISteamUserStats* lpSteamUserStats, uint32_t bAchievementsToo ) { DLL(uint32_t) BS_ISteamUserStats_ResetAllStats( ISteamUserStats* lpSteamUserStats, uint32_t bAchievementsToo ) {
return lpSteamUserStats->ResetAllStats( bAchievementsToo != 0 ); return lpSteamUserStats->ResetAllStats( bAchievementsToo != 0 );
} }
// Leaderboard functions // Leaderboard functions
// asks the Steam back-end for a leaderboard by name, and will create it if it's not yet // asks the Steam back-end for a leaderboard by name, and will create it if it's not yet
// This call is asynchronous, with the result returned in LeaderboardFindResult_t // This call is asynchronous, with the result returned in LeaderboardFindResult_t
//CALL_RESULT(LeaderboardFindResult_t) //CALL_RESULT(LeaderboardFindResult_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* lpSteamUserStats, const char* pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_FindOrCreateLeaderboard( ISteamUserStats* lpSteamUserStats, const char* pchLeaderboardName, ELeaderboardSortMethod eLeaderboardSortMethod, ELeaderboardDisplayType eLeaderboardDisplayType ) {
return new uint64_t( lpSteamUserStats->FindOrCreateLeaderboard( pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType ) ); return new uint64_t( lpSteamUserStats->FindOrCreateLeaderboard( pchLeaderboardName, eLeaderboardSortMethod, eLeaderboardDisplayType ) );
} }
// as above, but won't create the leaderboard if it's not found // as above, but won't create the leaderboard if it's not found
// This call is asynchronous, with the result returned in LeaderboardFindResult_t // This call is asynchronous, with the result returned in LeaderboardFindResult_t
//CALL_RESULT(LeaderboardFindResult_t) //CALL_RESULT(LeaderboardFindResult_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_FindLeaderboard( ISteamUserStats* lpSteamUserStats, const char *pchLeaderboardName ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_FindLeaderboard( ISteamUserStats* lpSteamUserStats, const char *pchLeaderboardName ) {
return new uint64_t( lpSteamUserStats->FindLeaderboard( pchLeaderboardName ) ); return new uint64_t( lpSteamUserStats->FindLeaderboard( pchLeaderboardName ) );
} }
// returns the name of a leaderboard // returns the name of a leaderboard
DLL(const char*) BS_ISteamUserStats_GetLeaderboardName( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) { DLL(const char*) BS_ISteamUserStats_GetLeaderboardName( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) {
return lpSteamUserStats->GetLeaderboardName( *hSteamLeaderboard ); return lpSteamUserStats->GetLeaderboardName( *hSteamLeaderboard );
} }
// returns the total number of entries in a leaderboard, as of the last request // returns the total number of entries in a leaderboard, as of the last request
DLL(int) BS_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) { DLL(int) BS_ISteamUserStats_GetLeaderboardEntryCount( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) {
return lpSteamUserStats->GetLeaderboardEntryCount( *hSteamLeaderboard ); return lpSteamUserStats->GetLeaderboardEntryCount( *hSteamLeaderboard );
} }
// returns the sort method of the leaderboard // returns the sort method of the leaderboard
DLL(ELeaderboardSortMethod) BS_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) { DLL(ELeaderboardSortMethod) BS_ISteamUserStats_GetLeaderboardSortMethod( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) {
return lpSteamUserStats->GetLeaderboardSortMethod( *hSteamLeaderboard ); return lpSteamUserStats->GetLeaderboardSortMethod( *hSteamLeaderboard );
} }
// returns the display type of the leaderboard // returns the display type of the leaderboard
DLL(ELeaderboardDisplayType) BS_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) { DLL(ELeaderboardDisplayType) BS_ISteamUserStats_GetLeaderboardDisplayType( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard ) {
return lpSteamUserStats->GetLeaderboardDisplayType( *hSteamLeaderboard ); return lpSteamUserStats->GetLeaderboardDisplayType( *hSteamLeaderboard );
} }
// Asks the Steam back-end for a set of rows in the leaderboard. // Asks the Steam back-end for a set of rows in the leaderboard.
// This call is asynchronous, with the result returned in LeaderboardScoresDownloaded_t // This call is asynchronous, with the result returned in LeaderboardScoresDownloaded_t
// LeaderboardScoresDownloaded_t will contain a handle to pull the results from GetDownloadedLeaderboardEntries() (below) // LeaderboardScoresDownloaded_t will contain a handle to pull the results from GetDownloadedLeaderboardEntries() (below)
// You can ask for more entries than exist, and it will return as many as do exist. // You can ask for more entries than exist, and it will return as many as do exist.
// k_ELeaderboardDataRequestGlobal requests rows in the leaderboard from the full table, with nRangeStart & nRangeEnd in the range [1, TotalEntries] // k_ELeaderboardDataRequestGlobal requests rows in the leaderboard from the full table, with nRangeStart & nRangeEnd in the range [1, TotalEntries]
// k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate // k_ELeaderboardDataRequestGlobalAroundUser requests rows around the current user, nRangeStart being negate
// e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after // e.g. DownloadLeaderboardEntries( hLeaderboard, k_ELeaderboardDataRequestGlobalAroundUser, -3, 3 ) will return 7 rows, 3 before the user, 3 after
// k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user // k_ELeaderboardDataRequestFriends requests all the rows for friends of the current user
//CALL_RESULT(LeaderboardScoresDownloaded_t) //CALL_RESULT(LeaderboardScoresDownloaded_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_DownloadLeaderboardEntries( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, ELeaderboardDataRequest eLeaderboardDataRequest, int nRangeStart, int nRangeEnd ) {
return new uint64_t( lpSteamUserStats->DownloadLeaderboardEntries( *hSteamLeaderboard, eLeaderboardDataRequest, nRangeStart, nRangeEnd ) ); return new uint64_t( lpSteamUserStats->DownloadLeaderboardEntries( *hSteamLeaderboard, eLeaderboardDataRequest, nRangeStart, nRangeEnd ) );
} }
///##### ///#####
// as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers // as above, but downloads leaderboard entries for an arbitrary set of users - ELeaderboardDataRequest is k_ELeaderboardDataRequestUsers
// if a user doesn't have a leaderboard entry, they won't be included in the result // if a user doesn't have a leaderboard entry, they won't be included in the result
// a max of 100 users can be downloaded at a time, with only one outstanding call at a time // a max of 100 users can be downloaded at a time, with only one outstanding call at a time
//CALL_RESULT(LeaderboardScoresDownloaded_t) //CALL_RESULT(LeaderboardScoresDownloaded_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, CSteamID* prgUsers, int cUsers ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_DownloadLeaderboardEntriesForUsers( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, CSteamID* prgUsers, int cUsers ) {
return new uint64_t( lpSteamUserStats->DownloadLeaderboardEntriesForUsers( *hSteamLeaderboard, prgUsers, cUsers ) ); return new uint64_t( lpSteamUserStats->DownloadLeaderboardEntriesForUsers( *hSteamLeaderboard, prgUsers, cUsers ) );
} }
// Returns data about a single leaderboard entry // Returns data about a single leaderboard entry
// use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries // use a for loop from 0 to LeaderboardScoresDownloaded_t::m_cEntryCount to get all the downloaded entries
// e.g. // e.g.
// void OnLeaderboardScoresDownloaded( LeaderboardScoresDownloaded_t *pLeaderboardScoresDownloaded ) // void OnLeaderboardScoresDownloaded( LeaderboardScoresDownloaded_t *pLeaderboardScoresDownloaded )
// { // {
// for ( int index = 0; index < pLeaderboardScoresDownloaded->m_cEntryCount; index++ ) // for ( int index = 0; index < pLeaderboardScoresDownloaded->m_cEntryCount; index++ )
// { // {
// LeaderboardEntry_t leaderboardEntry; // LeaderboardEntry_t leaderboardEntry;
// int32 details[3]; // we know this is how many we've stored previously // int32 details[3]; // we know this is how many we've stored previously
// GetDownloadedLeaderboardEntry( pLeaderboardScoresDownloaded->m_hSteamLeaderboardEntries, index, &leaderboardEntry, details, 3 ); // GetDownloadedLeaderboardEntry( pLeaderboardScoresDownloaded->m_hSteamLeaderboardEntries, index, &leaderboardEntry, details, 3 );
// assert( leaderboardEntry.m_cDetails == 3 ); // assert( leaderboardEntry.m_cDetails == 3 );
// ... // ...
// } // }
// once you've accessed all the entries, the data will be free'd, and the SteamLeaderboardEntries_t handle will become invalid // once you've accessed all the entries, the data will be free'd, and the SteamLeaderboardEntries_t handle will become invalid
DLL(uint32_t) BS_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* lpSteamUserStats, SteamLeaderboardEntries_t* hSteamLeaderboardEntries, int index, LeaderboardEntry_t *pLeaderboardEntry, int32 *pDetails, int cDetailsMax ) { DLL(uint32_t) BS_ISteamUserStats_GetDownloadedLeaderboardEntry( ISteamUserStats* lpSteamUserStats, SteamLeaderboardEntries_t* hSteamLeaderboardEntries, int index, LeaderboardEntry_t *pLeaderboardEntry, int32 *pDetails, int cDetailsMax ) {
return lpSteamUserStats->GetDownloadedLeaderboardEntry( *hSteamLeaderboardEntries, index, pLeaderboardEntry, pDetails, cDetailsMax ); return lpSteamUserStats->GetDownloadedLeaderboardEntry( *hSteamLeaderboardEntries, index, pLeaderboardEntry, pDetails, cDetailsMax );
} }
// Uploads a user score to the Steam back-end. // Uploads a user score to the Steam back-end.
// This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t // This call is asynchronous, with the result returned in LeaderboardScoreUploaded_t
// Details are extra game-defined information regarding how the user got that score // Details are extra game-defined information regarding how the user got that score
// pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list // pScoreDetails points to an array of int32's, cScoreDetailsCount is the number of int32's in the list
//CALL_RESULT(LeaderboardScoreUploaded_t) //CALL_RESULT(LeaderboardScoreUploaded_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32_t* pScoreDetails, int cScoreDetailsCount ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_UploadLeaderboardScore( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, ELeaderboardUploadScoreMethod eLeaderboardUploadScoreMethod, int32 nScore, const int32_t* pScoreDetails, int cScoreDetailsCount ) {
return new uint64_t(lpSteamUserStats->UploadLeaderboardScore( *hSteamLeaderboard, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount )); return new uint64_t(lpSteamUserStats->UploadLeaderboardScore( *hSteamLeaderboard, eLeaderboardUploadScoreMethod, nScore, pScoreDetails, cScoreDetailsCount ));
} }
// Attaches a piece of user generated content the user's entry on a leaderboard. // Attaches a piece of user generated content the user's entry on a leaderboard.
// hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare(). // hContent is a handle to a piece of user generated content that was shared using ISteamUserRemoteStorage::FileShare().
// This call is asynchronous, with the result returned in LeaderboardUGCSet_t. // This call is asynchronous, with the result returned in LeaderboardUGCSet_t.
//CALL_RESULT(LeaderboardUGCSet_t) //CALL_RESULT(LeaderboardUGCSet_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, UGCHandle_t* hUGC ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_AttachLeaderboardUGC( ISteamUserStats* lpSteamUserStats, SteamLeaderboard_t* hSteamLeaderboard, UGCHandle_t* hUGC ) {
return new uint64_t( lpSteamUserStats->AttachLeaderboardUGC( *hSteamLeaderboard, *hUGC ) ); return new uint64_t( lpSteamUserStats->AttachLeaderboardUGC( *hSteamLeaderboard, *hUGC ) );
} }
// Retrieves the number of players currently playing your game (online + offline) // Retrieves the number of players currently playing your game (online + offline)
// This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t // This call is asynchronous, with the result returned in NumberOfCurrentPlayers_t
//CALL_RESULT(NumberOfCurrentPlayers_t) //CALL_RESULT(NumberOfCurrentPlayers_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* lpSteamUserStats ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_GetNumberOfCurrentPlayers( ISteamUserStats* lpSteamUserStats ) {
return new uint64_t( lpSteamUserStats->GetNumberOfCurrentPlayers( ) ); return new uint64_t( lpSteamUserStats->GetNumberOfCurrentPlayers( ) );
} }
// Requests that Steam fetch data on the percentage of players who have received each achievement // Requests that Steam fetch data on the percentage of players who have received each achievement
// for the game globally. // for the game globally.
// This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t. // This call is asynchronous, with the result returned in GlobalAchievementPercentagesReady_t.
//CALL_RESULT(GlobalAchievementPercentagesReady_t) //CALL_RESULT(GlobalAchievementPercentagesReady_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* lpSteamUserStats ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestGlobalAchievementPercentages( ISteamUserStats* lpSteamUserStats ) {
return new uint64_t( lpSteamUserStats->RequestGlobalAchievementPercentages( ) ); return new uint64_t( lpSteamUserStats->RequestGlobalAchievementPercentages( ) );
} }
// Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch // Get the info on the most achieved achievement for the game, returns an iterator index you can use to fetch
// the next most achieved afterwards. Will return -1 if there is no data on achievement // the next most achieved afterwards. Will return -1 if there is no data on achievement
// percentages (ie, you haven't called RequestGlobalAchievementPercentages and waited on the callback). // percentages (ie, you haven't called RequestGlobalAchievementPercentages and waited on the callback).
DLL(uint32_t) BS_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* lpSteamUserStats, char *pchName, uint32_t unNameBufLen, float *pflPercent, bool* pbAchieved ) { DLL(uint32_t) BS_ISteamUserStats_GetMostAchievedAchievementInfo( ISteamUserStats* lpSteamUserStats, char *pchName, uint32_t unNameBufLen, float *pflPercent, bool* pbAchieved ) {
return lpSteamUserStats->GetMostAchievedAchievementInfo( pchName, unNameBufLen, pflPercent, pbAchieved ); return lpSteamUserStats->GetMostAchievedAchievementInfo( pchName, unNameBufLen, pflPercent, pbAchieved );
} }
// Get the info on the next most achieved achievement for the game. Call this after GetMostAchievedAchievementInfo or another // Get the info on the next most achieved achievement for the game. Call this after GetMostAchievedAchievementInfo or another
// GetNextMostAchievedAchievementInfo call passing the iterator from the previous call. Returns -1 after the last // GetNextMostAchievedAchievementInfo call passing the iterator from the previous call. Returns -1 after the last
// achievement has been iterated. // achievement has been iterated.
DLL(uint32_t) BS_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* lpSteamUserStats, int iIteratorPrevious, char *pchName, uint32_t unNameBufLen, float *pflPercent, bool *pbAchieved ) { DLL(uint32_t) BS_ISteamUserStats_GetNextMostAchievedAchievementInfo( ISteamUserStats* lpSteamUserStats, int iIteratorPrevious, char *pchName, uint32_t unNameBufLen, float *pflPercent, bool *pbAchieved ) {
return lpSteamUserStats->GetNextMostAchievedAchievementInfo( iIteratorPrevious, pchName, unNameBufLen, pflPercent, pbAchieved ); return lpSteamUserStats->GetNextMostAchievedAchievementInfo( iIteratorPrevious, pchName, unNameBufLen, pflPercent, pbAchieved );
} }
// Returns the percentage of users who have achieved the specified achievement. // Returns the percentage of users who have achieved the specified achievement.
DLL(uint32_t) BS_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* lpSteamUserStats, const char *pchName, float *pflPercent ) { DLL(uint32_t) BS_ISteamUserStats_GetAchievementAchievedPercent( ISteamUserStats* lpSteamUserStats, const char *pchName, float *pflPercent ) {
return lpSteamUserStats->GetAchievementAchievedPercent( pchName, pflPercent ); return lpSteamUserStats->GetAchievementAchievedPercent( pchName, pflPercent );
} }
// Requests global stats data, which is available for stats marked as "aggregated". // Requests global stats data, which is available for stats marked as "aggregated".
// This call is asynchronous, with the results returned in GlobalStatsReceived_t. // This call is asynchronous, with the results returned in GlobalStatsReceived_t.
// nHistoryDays specifies how many days of day-by-day history to retrieve in addition // nHistoryDays specifies how many days of day-by-day history to retrieve in addition
// to the overall totals. The limit is 60. // to the overall totals. The limit is 60.
//CALL_RESULT(GlobalStatsReceived_t) //CALL_RESULT(GlobalStatsReceived_t)
DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestGlobalStats( ISteamUserStats* lpSteamUserStats, int nHistoryDays ) { DLL(SteamAPICall_t*) BS_ISteamUserStats_RequestGlobalStats( ISteamUserStats* lpSteamUserStats, int nHistoryDays ) {
return new uint64_t( lpSteamUserStats->RequestGlobalStats( nHistoryDays ) ); return new uint64_t( lpSteamUserStats->RequestGlobalStats( nHistoryDays ) );
} }
// Gets the lifetime totals for an aggregated stat // Gets the lifetime totals for an aggregated stat
DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatL( ISteamUserStats* lpSteamUserStats, const char *pchStatName, int64* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatL( ISteamUserStats* lpSteamUserStats, const char *pchStatName, int64* pData ) {
return lpSteamUserStats->GetGlobalStat( pchStatName, pData ); return lpSteamUserStats->GetGlobalStat( pchStatName, pData );
} }
DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatD( ISteamUserStats* lpSteamUserStats, const char *pchStatName, double* pData ) { DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatD( ISteamUserStats* lpSteamUserStats, const char *pchStatName, double* pData ) {
return lpSteamUserStats->GetGlobalStat( pchStatName, pData ); return lpSteamUserStats->GetGlobalStat( pchStatName, pData );
} }
// Gets history for an aggregated stat. pData will be filled with daily values, starting with today. // Gets history for an aggregated stat. pData will be filled with daily values, starting with today.
// So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago, // So when called, pData[0] will be today, pData[1] will be yesterday, and pData[2] will be two days ago,
// etc. cubData is the size in bytes of the pubData buffer. Returns the number of // etc. cubData is the size in bytes of the pubData buffer. Returns the number of
// elements actually set. // elements actually set.
DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatHistoryL( ISteamUserStats* lpSteamUserStats, const char *pchStatName, int64 *pData, uint32_t cubData ) { DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatHistoryL( ISteamUserStats* lpSteamUserStats, const char *pchStatName, int64 *pData, uint32_t cubData ) {
return lpSteamUserStats->GetGlobalStatHistory( pchStatName, pData, cubData ); return lpSteamUserStats->GetGlobalStatHistory( pchStatName, pData, cubData );
} }
DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatHistoryD( ISteamUserStats* lpSteamUserStats, const char *pchStatName, double *pData, uint32_t cubData ) { DLL(uint32_t) BS_ISteamUserStats_GetGlobalStatHistoryD( ISteamUserStats* lpSteamUserStats, const char *pchStatName, double *pData, uint32_t cubData ) {
return lpSteamUserStats->GetGlobalStatHistory( pchStatName, pData, cubData ); return lpSteamUserStats->GetGlobalStatHistory( pchStatName, pData, cubData );
} }
+27 -27
View File
@@ -1,27 +1,27 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamUtils*) BS_SteamUtils() { DLL(ISteamUtils*) BS_SteamUtils() {
return SteamUtils(); return SteamUtils();
} }
DLL(ISteamUtils*) BS_SteamGameServerUtils() { DLL(ISteamUtils*) BS_SteamGameServerUtils() {
return SteamGameServerUtils(); return SteamGameServerUtils();
} }
#pragma message("SteamUtils is not ported yet. TODO!") #pragma message("SteamUtils is not ported yet. TODO!")
+23 -23
View File
@@ -1,23 +1,23 @@
// BlitzSteam - Steam wrapper for Blitz // BlitzSteam - Steam wrapper for Blitz
// Copyright (C) 2015 Xaymar (Michael Fabian Dirks) // Copyright (C) 2015 Xaymar (Michael Fabian Dirks)
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as // it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation, either version 3 of the // published by the Free Software Foundation, either version 3 of the
// License, or (at your option) any later version. // License, or (at your option) any later version.
// //
// This program is distributed in the hope that it will be useful, // This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of // but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU Lesser General Public License // 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/>. // along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "BlitzSteam.h" #include "BlitzSteam.h"
DLL(ISteamVideo*) BS_SteamVideo() { DLL(ISteamVideo*) BS_SteamVideo() {
return SteamVideo(); return SteamVideo();
} }
#pragma message("SteamVideo is not ported yet. TODO!") #pragma message("SteamVideo is not ported yet. TODO!")