Files
funnygame/external/steamworks/steamworksexample/RemoteStorage.h
2025-07-13 15:47:42 +03:00

101 lines
2.2 KiB
C++

//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============
//
// Purpose: Class for manipulating Steam Cloud
//
// $NoKeywords: $
//=============================================================================
#ifndef REMOTE_STORAGE_H
#define REMOTE_STORAGE_H
#include "SpaceWar.h"
#include "GameEngine.h"
class ISteamUser;
class CSpaceWarClient;
class IRemoteStorageSync;
class CRemoteStorageScreen;
enum ERemoteStorageSyncMenuCommand
{
k_EMenuCommandNone = 0,
k_EMenuCommandProgress = 1,
k_EMenuCommandSyncComplete = 2,
};
//-----------------------------------------------------------------------------
// Purpose: Example of Steam Cloud
//-----------------------------------------------------------------------------
class CRemoteStorage
{
public:
// Constructor
CRemoteStorage( IGameEngine *pGameEngine );
~CRemoteStorage();
// call when user changes to this menu
void Show();
// Display the remote storage screen
void Render();
// A sync menu item has been selected
void OnMenuSelection( ERemoteStorageSyncMenuCommand selection );
private:
IGameEngine *m_pGameEngine;
CRemoteStorageScreen *m_pRemoteStorageScreen;
};
//-----------------------------------------------------------------------------
// Purpose: Screen where user can enter their custom message
//-----------------------------------------------------------------------------
class CRemoteStorageScreen
{
public:
CRemoteStorageScreen( IGameEngine *pGameEngine );
// call when user changes to this menu
void Show();
// Display the remote storage screen
void Render();
// Done showing this page?
bool BFinished() { return m_bFinished; }
private:
void GetFileStats();
void LoadMessage();
bool BHandleSelect();
bool BHandleCancel();
// Game engine
IGameEngine *m_pGameEngine;
// Display font
HGAMEFONT m_hDisplayFont;
// Steam User interface
ISteamUser *m_pSteamUser;
// Steam RemoteStorage interface
ISteamRemoteStorage *m_pSteamRemoteStorage;
// Greeting message
char m_rgchGreeting[40];
char m_rgchGreetingNext[40];
bool m_bFinished;
int32 m_nNumFilesInCloud;
uint64 m_ulBytesQuota;
uint64 m_ulAvailableBytes;
};
#endif