Skip to content

Instantly share code, notes, and snippets.

@OndrejPetrzilka
Created July 9, 2019 15:56
Show Gist options
  • Save OndrejPetrzilka/7952f42032618952174d41a2360985aa to your computer and use it in GitHub Desktop.
Save OndrejPetrzilka/7952f42032618952174d41a2360985aa to your computer and use it in GitHub Desktop.
internal static bool Init()
{
HSteamUser hSteamUser = SteamAPI.GetHSteamUser();
HSteamPipe hSteamPipe = SteamAPI.GetHSteamPipe();
if (hSteamPipe == (HSteamPipe)0) { return false; }
using (var pchVersionString = new InteropHelp.UTF8StringHandle(Constants.STEAMCLIENT_INTERFACE_VERSION))
{
m_pSteamClient = NativeMethods.SteamInternal_CreateInterface(pchVersionString);
}
if (m_pSteamClient == IntPtr.Zero) { return false; }
m_pSteamUser = SteamClient.GetISteamUser(hSteamUser, hSteamPipe, Constants.STEAMUSER_INTERFACE_VERSION);
if (m_pSteamUser == IntPtr.Zero) { return false; }
m_pSteamFriends = SteamClient.GetISteamFriends(hSteamUser, hSteamPipe, Constants.STEAMFRIENDS_INTERFACE_VERSION);
if (m_pSteamFriends == IntPtr.Zero) { return false; }
m_pSteamUtils = SteamClient.GetISteamUtils(hSteamPipe, Constants.STEAMUTILS_INTERFACE_VERSION);
if (m_pSteamUtils == IntPtr.Zero) { return false; }
m_pSteamMatchmaking = SteamClient.GetISteamMatchmaking(hSteamUser, hSteamPipe, Constants.STEAMMATCHMAKING_INTERFACE_VERSION);
if (m_pSteamMatchmaking == IntPtr.Zero) { return false; }
m_pSteamMatchmakingServers = SteamClient.GetISteamMatchmakingServers(hSteamUser, hSteamPipe, Constants.STEAMMATCHMAKINGSERVERS_INTERFACE_VERSION);
if (m_pSteamMatchmakingServers == IntPtr.Zero) { return false; }
m_pSteamUserStats = SteamClient.GetISteamUserStats(hSteamUser, hSteamPipe, Constants.STEAMUSERSTATS_INTERFACE_VERSION);
if (m_pSteamUserStats == IntPtr.Zero) { return false; }
m_pSteamApps = SteamClient.GetISteamApps(hSteamUser, hSteamPipe, Constants.STEAMAPPS_INTERFACE_VERSION);
if (m_pSteamApps == IntPtr.Zero) { return false; }
m_pSteamNetworking = SteamClient.GetISteamNetworking(hSteamUser, hSteamPipe, Constants.STEAMNETWORKING_INTERFACE_VERSION);
if (m_pSteamNetworking == IntPtr.Zero) { return false; }
m_pSteamRemoteStorage = SteamClient.GetISteamRemoteStorage(hSteamUser, hSteamPipe, Constants.STEAMREMOTESTORAGE_INTERFACE_VERSION);
if (m_pSteamRemoteStorage == IntPtr.Zero) { return false; }
m_pSteamScreenshots = SteamClient.GetISteamScreenshots(hSteamUser, hSteamPipe, Constants.STEAMSCREENSHOTS_INTERFACE_VERSION);
if (m_pSteamScreenshots == IntPtr.Zero) { return false; }
// Outdated interface
//m_pSteamHTTP = SteamClient.GetISteamHTTP(hSteamUser, hSteamPipe, Constants.STEAMHTTP_INTERFACE_VERSION);
//if (m_pSteamHTTP == IntPtr.Zero) { return false; }
// Outdated interface
//m_pController = SteamClient.GetISteamController(hSteamUser, hSteamPipe, Constants.STEAMCONTROLLER_INTERFACE_VERSION);
//if (m_pController == IntPtr.Zero) { return false; }
// Outdated interface
//m_pSteamUGC = SteamClient.GetISteamUGC(hSteamUser, hSteamPipe, Constants.STEAMUGC_INTERFACE_VERSION);
//if (m_pSteamUGC == IntPtr.Zero) { return false; }
m_pSteamAppList = SteamClient.GetISteamAppList(hSteamUser, hSteamPipe, Constants.STEAMAPPLIST_INTERFACE_VERSION);
if (m_pSteamAppList == IntPtr.Zero) { return false; }
// This one fails for unknown reason
//m_pSteamMusic = SteamClient.GetISteamMusic(hSteamUser, hSteamPipe, Constants.STEAMMUSIC_INTERFACE_VERSION);
//if (m_pSteamMusic == IntPtr.Zero) { return false; }
m_pSteamMusicRemote = SteamClient.GetISteamMusicRemote(hSteamUser, hSteamPipe, Constants.STEAMMUSICREMOTE_INTERFACE_VERSION);
if (m_pSteamMusicRemote == IntPtr.Zero) { return false; }
// Outdated interface
//m_pSteamHTMLSurface = SteamClient.GetISteamHTMLSurface(hSteamUser, hSteamPipe, Constants.STEAMHTMLSURFACE_INTERFACE_VERSION);
//if (m_pSteamHTMLSurface == IntPtr.Zero) { return false; }
// Outdated interface
//m_pSteamInventory = SteamClient.GetISteamInventory(hSteamUser, hSteamPipe, Constants.STEAMINVENTORY_INTERFACE_VERSION);
//if (m_pSteamInventory == IntPtr.Zero) { return false; }
// This one fails for unknown reason
//m_pSteamVideo = SteamClient.GetISteamVideo(hSteamUser, hSteamPipe, Constants.STEAMVIDEO_INTERFACE_VERSION);
//if (m_pSteamVideo == IntPtr.Zero) { return false; }
// Crashes unity for unknown reason
//m_pSteamParentalSettings = SteamClient.GetISteamParentalSettings(hSteamUser, hSteamPipe, Constants.STEAMPARENTALSETTINGS_INTERFACE_VERSION);
//if (m_pSteamParentalSettings == IntPtr.Zero) { return false; }
return true;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment