//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// // // Purpose: steam state machine that handles authenticating steam users // //=============================================================================// #ifndef CL_STEAMUAUTH_H #define CL_STEAMUAUTH_H #ifdef _WIN32 #pragma once #endif #include "steam/steam_api.h" class CSteam3Client : public CSteamAPIContext { public: CSteam3Client(); ~CSteam3Client(); void Activate(); void Shutdown(); bool IsInitialized()const { return m_bInitialized; } void GetAuthSessionTicket( void *pTicket, int cbMaxTicket, uint32 *pcbTicket, uint64 unGSSteamID, bool bSecure ); void CancelAuthTicket(); bool BGSSecure() { return m_bGSSecure; } void RunFrame(); bool IsGameOverlayActive()const { return m_bGameOverlayActive; } #if !defined(NO_STEAM) STEAM_CALLBACK( CSteam3Client, OnClientGameServerDeny, ClientGameServerDeny_t, m_CallbackClientGameServerDeny ); STEAM_CALLBACK( CSteam3Client, OnGameServerChangeRequested, GameServerChangeRequested_t, m_CallbackGameServerChangeRequested ); STEAM_CALLBACK( CSteam3Client, OnGameOverlayActivated, GameOverlayActivated_t, m_CallbackGameOverlayActivated ); STEAM_CALLBACK( CSteam3Client, OnPersonaUpdated, PersonaStateChange_t, m_CallbackPersonaStateChanged ); STEAM_CALLBACK( CSteam3Client, OnLowBattery, LowBatteryPower_t, m_CallbackLowBattery ); STEAM_CALLBACK( CSteam3Client, OnSteamSocketStatus, SocketStatusCallback_t, m_CallbackSteamSocketStatus ); #endif private: HAuthTicket m_hAuthTicket; bool m_bActive; bool m_bGSSecure; bool m_bGameOverlayActive; bool m_bInitialized; }; #ifndef DEDICATED // singleton accessor CSteam3Client &Steam3Client(); #endif inline bool IsSteam3ClientGameOverlayActive() { #ifndef DEDICATED return Steam3Client().IsGameOverlayActive(); #else return false; // dedicated server has no overlays #endif } #endif // CL_STEAMUAUTH_H