diff --git a/Readme.txt b/Readme.txt index b86222e..3e75885 100644 --- a/Readme.txt +++ b/Readme.txt @@ -11,6 +11,29 @@ website at: http://partner.steamgames.com Revision History: +---------------------------------------------------------------- +v1.19 22nd March 2012 +---------------------------------------------------------------- +Friends +* Added ISteamFriends::GetFollowerCount() +* Added ISteamFriends::IsFollowing() +* Added ISteamFriends::EnumerateFollowingList() + +Cloud +*Added ISteamRemoteStorage::UpdatePublishedFileSetChangeDescription() +*Added ISteamRemoteStorage::GetPublishedItemVoteDetails() +*Added ISteamRemoteStorage::UpdateUserPublishedItemVote() +*Added ISteamRemoteStorage::GetUserPublishedItemVoteDetails() +*Added ISteamRemoteStorage::EnumerateUserSharedWorkshopFiles() +*Added ISteamRemoteStorage::PublishVideo() +*Added ISteamRemoteStorage::SetUserPublishedFileAction() +*Added ISteamRemoteStorage::EnumeratePublishedFilesByUserAction() +*Added ISteamRemoteStorage::EnumeratePublishedWorkshopFiles() + +ISteamGameServer +*Updated callback for SteamGameServer::ComputeNewPlayerCompatibility to include the steam id the compatibility was calculated for + + ---------------------------------------------------------------- v1.18 7th February 2012 ---------------------------------------------------------------- diff --git a/SteamworksExample/BaseMenu.h b/SteamworksExample/BaseMenu.h index 2f36459..84d8e49 100644 --- a/SteamworksExample/BaseMenu.h +++ b/SteamworksExample/BaseMenu.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2008, Valve LLC, All rights reserved. ============ +//========= Copyright (c) 1996-2008, Valve LLC, All rights reserved. ============ // // Purpose: Base class for various game menu screens // @@ -159,12 +159,12 @@ public: if ( m_sHeading.length() ) { DWORD dwColor = D3DCOLOR_ARGB( 255, 255, 128, 128 ); - RECT rect; - rect.top = 10; - rect.bottom = rect.top + MENU_FONT_HEIGHT + ( MENU_ITEM_PADDING * 2 ); - rect.left = 0; - rect.right = m_pGameEngine->GetViewportWidth(); - m_pGameEngine->BDrawString( g_hMenuFont, rect, dwColor, TEXTPOS_CENTER|TEXTPOS_VCENTER, m_sHeading.c_str() ); + RECT rectHeader; + rectHeader.top = 10; + rectHeader.bottom = rectHeader.top + MENU_FONT_HEIGHT + ( MENU_ITEM_PADDING * 2 ); + rectHeader.left = 0; + rectHeader.right = m_pGameEngine->GetViewportWidth(); + m_pGameEngine->BDrawString( g_hMenuFont, rectHeader, dwColor, TEXTPOS_CENTER|TEXTPOS_VCENTER, m_sHeading.c_str() ); } int32 iStartItem = 0; diff --git a/client/steam.exe b/client/steam.exe index 732e567..cafb7e4 100644 Binary files a/client/steam.exe and b/client/steam.exe differ diff --git a/glmgr/cglmquery.cpp b/glmgr/cglmquery.cpp index 099eeff..0e1d66f 100644 --- a/glmgr/cglmquery.cpp +++ b/glmgr/cglmquery.cpp @@ -67,7 +67,7 @@ CGLMQuery::CGLMQuery( GLMContext *ctx, GLMQueryParams *params ) GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::CGLMQuery (OQ) saw %s error (%d) from glGenQueriesARB", decodedStr, errorcode ); m_name = 0; } @@ -82,7 +82,7 @@ CGLMQuery::CGLMQuery( GLMContext *ctx, GLMQueryParams *params ) GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::CGLMQuery (fence) saw %s error (%d) from glGenFencesAPPLE", decodedStr, errorcode ); m_name = 0; } @@ -111,7 +111,7 @@ CGLMQuery::~CGLMQuery() GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::~CGLMQuery (OQ) saw %s error (%d) from glDeleteQueries", decodedStr, errorcode ); } } @@ -126,7 +126,7 @@ CGLMQuery::~CGLMQuery() GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::~CGLMQuery (fence) saw %s error (%d) from glDeleteFencesAPPLE", decodedStr, errorcode ); } } @@ -172,7 +172,7 @@ void CGLMQuery::Start( void ) // "start counting" GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Start(OQ) saw %s error (%d) from glBeginQueryARB (GL_SAMPLES_PASSED_ARB) name=%d", decodedStr, errorcode, m_name ); } } @@ -185,7 +185,7 @@ void CGLMQuery::Start( void ) // "start counting" GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Start(fence) saw %s error (%d) from glSetFenceAPPLE name=%d", decodedStr, errorcode, m_name ); } @@ -219,7 +219,7 @@ void CGLMQuery::Stop( void ) // "stop counting" GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Stop(OQ) saw %s error (%d) from glEndQueryARB( GL_SAMPLES_PASSED_ARB ) name=%d", decodedStr, errorcode, m_name ); } } @@ -264,7 +264,7 @@ bool CGLMQuery::IsDone( void ) GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::IsDone saw %s error (%d) from glGetQueryObjectivARB(a2) name=%d", decodedStr, errorcode, m_name ); } @@ -279,7 +279,7 @@ bool CGLMQuery::IsDone( void ) GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::IsDone saw %s error (%d) from glTestFenceAPPLE(b) name=%d", decodedStr, errorcode, m_name ); } @@ -290,7 +290,7 @@ bool CGLMQuery::IsDone( void ) errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::IsDone saw %s error (%d) from glFinishFenceAPPLE(b) name=%d", decodedStr, errorcode, m_name ); } } @@ -332,7 +332,7 @@ void CGLMQuery::Complete( uint *result ) if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Complete saw %s error (%d) from glGetQueryObjectivARB GL_QUERY_RESULT_AVAILABLE_ARB name=%d", decodedStr, errorcode, m_name ); resultval=0; @@ -350,10 +350,10 @@ void CGLMQuery::Complete( uint *result ) glGetQueryObjectuivARB( m_name, GL_QUERY_RESULT_ARB, &resultval); - GLenum errorcode = GetQueryError(); + errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Complete saw %s error (%d) from glGetQueryObjectivARB GL_QUERY_RESULT_ARB name=%d", decodedStr, errorcode, m_name ); resultval=0; @@ -377,7 +377,7 @@ void CGLMQuery::Complete( uint *result ) GLenum errorcode = GetQueryError(); if (errorcode) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); printf( "\nCGLMQuery::Complete saw %s error (%d) from glFinishFenceAPPLE (EFence) name=%d", decodedStr, errorcode, m_name ); } diff --git a/glmgr/glmgr.cpp b/glmgr/glmgr.cpp index 8fd10bc..edc5606 100644 --- a/glmgr/glmgr.cpp +++ b/glmgr/glmgr.cpp @@ -6421,7 +6421,7 @@ void GLMTester::Present( int seed ) } -void GLMTester::CheckGLError( char *comment ) +void GLMTester::CheckGLError( const char *comment ) { char errbuf[1024]; @@ -6436,8 +6436,8 @@ void GLMTester::CheckGLError( char *comment ) GLenum errorcode2 = 0; if ( errorcode != GL_NO_ERROR ) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); - char *decodedStr2 = ""; + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr2 = ""; if ( errorcode == GL_INVALID_FRAMEBUFFER_OPERATION_EXT ) { @@ -6465,7 +6465,7 @@ void GLMTester::CheckGLError( char *comment ) } } -void GLMTester::InternalError( int errcode, char *comment ) +void GLMTester::InternalError( int errcode, const char *comment ) { if (errcode) { diff --git a/glmgr/glmgr.h b/glmgr/glmgr.h index 2382d6c..66fd299 100644 --- a/glmgr/glmgr.h +++ b/glmgr/glmgr.h @@ -1006,8 +1006,8 @@ class GLMTester void Present( int seed ); // error reporting - void CheckGLError( char *comment ); // obey m_params setting for console / debugger response - void InternalError( int errcode, char *comment ); // if errcode!=0, obey m_params setting for console / debugger response + void CheckGLError( const char *comment ); // obey m_params setting for console / debugger response + void InternalError( int errcode, const char *comment ); // if errcode!=0, obey m_params setting for console / debugger response void RunTests(); diff --git a/glmgr/glmgrbasics.cpp b/glmgr/glmgrbasics.cpp index 2d43c0e..5d039c6 100644 --- a/glmgr/glmgrbasics.cpp +++ b/glmgr/glmgrbasics.cpp @@ -148,7 +148,7 @@ int gl_singlecontext = 1; typedef struct { unsigned long value; - char *name; + const char *name; } GLMValueEntry_t; #define TERMVALUE 0x31415926 @@ -2597,7 +2597,7 @@ GLMValueEntry_t g_gl_renderers[] = char s_glmStrScratch[65536]; int s_glmStrCursor = 0; -char * GLMDecode( GLMThing_t thingtype, unsigned long value ) +const char * GLMDecode( GLMThing_t thingtype, unsigned long value ) { GLMValueEntry_t *table = NULL; char isflags = 0; @@ -2657,7 +2657,7 @@ char * GLMDecode( GLMThing_t thingtype, unsigned long value ) return "UNKNOWN"; } -char *GLMDecodeMask( GLMThing_t kind, unsigned long value ) +const char *GLMDecodeMask( GLMThing_t kind, unsigned long value ) { // if cursor to scratch buffer is within 1K of EOB, rewind // nobody is going to decode 63K of flag string values in a single call.. @@ -2906,8 +2906,8 @@ void GLMCheckError( bool noStop, bool noLog ) // caller can force off, but not o GLenum errorcode2 = 0; if (errorcode != GL_NO_ERROR) { - char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); - char *decodedStr2 = ""; + const char *decodedStr = GLMDecode( eGL_ERROR, errorcode ); + const char *decodedStr2 = ""; if (errorcode == GL_INVALID_FRAMEBUFFER_OPERATION_EXT) { diff --git a/glmgr/glmgrbasics.h b/glmgr/glmgrbasics.h index 1805d5c..1f380ef 100644 --- a/glmgr/glmgrbasics.h +++ b/glmgr/glmgrbasics.h @@ -223,8 +223,8 @@ typedef enum } GLMThing_t; -char* GLMDecode( GLMThing_t type, unsigned long value ); // decode a numeric const -char* GLMDecodeMask( GLMThing_t type, unsigned long value ); // decode a bitmask +const char* GLMDecode( GLMThing_t type, unsigned long value ); // decode a numeric const +const char* GLMDecodeMask( GLMThing_t type, unsigned long value ); // decode a bitmask void GLMStop( void ); // aka Debugger() void GLMCheckError( bool noStop = false, bool noLog= false ); diff --git a/glmgr/glmgrcocoa.mm b/glmgr/glmgrcocoa.mm index 2ac904d..b3e59c9 100644 --- a/glmgr/glmgrcocoa.mm +++ b/glmgr/glmgrcocoa.mm @@ -824,7 +824,7 @@ char *CheesyRendererDecode( uint value ) } } -extern char *GLMDecode( GLMThing_t thingtype, unsigned long value ); +extern const char *GLMDecode( GLMThing_t thingtype, unsigned long value ); void GLMRendererInfo::Dump( int which ) { diff --git a/glmgr/mathlite.cpp b/glmgr/mathlite.cpp index 045ec3d..1ec0848 100644 --- a/glmgr/mathlite.cpp +++ b/glmgr/mathlite.cpp @@ -714,7 +714,7 @@ void Vector4DMultiplyPosition( const VMatrix& src1, Vector const& src2, Vector4D { // Make sure it works if src2 == dst Vector tmp; - Vector const&v = ( &src2 == &dst.AsVector3D() ) ? static_cast(tmp) : src2; + Vector const&v = ( &src2 == &dst.AsVector3D() ) ? tmp : src2; if (&src2 == &dst.AsVector3D()) { @@ -737,7 +737,7 @@ void Vector3DMultiply( const VMatrix &src1, const Vector &src2, Vector &dst ) { // Make sure it works if src2 == dst Vector tmp; - const Vector &v = (&src2 == &dst) ? static_cast(tmp) : src2; + const Vector &v = (&src2 == &dst) ? tmp : src2; if( &src2 == &dst ) { @@ -758,7 +758,7 @@ void Vector3DMultiplyPositionProjective( const VMatrix& src1, const Vector &src2 { // Make sure it works if src2 == dst Vector tmp; - const Vector &v = (&src2 == &dst) ? static_cast(tmp): src2; + const Vector &v = (&src2 == &dst) ? tmp: src2; if( &src2 == &dst ) { VectorCopy( src2, tmp ); @@ -785,7 +785,7 @@ void Vector3DMultiplyProjective( const VMatrix& src1, const Vector &src2, Vector { // Make sure it works if src2 == dst Vector tmp; - const Vector &v = (&src2 == &dst) ? static_cast(tmp) : src2; + const Vector &v = (&src2 == &dst) ? tmp : src2; if( &src2 == &dst ) { VectorCopy( src2, tmp ); @@ -838,7 +838,7 @@ void Vector3DMultiplyTranspose( const VMatrix& src1, const Vector& src2, Vector& bool srcEqualsDst = (&src2 == &dst); Vector tmp; - const Vector&v = srcEqualsDst ? static_cast(tmp) : src2; + const Vector&v = srcEqualsDst ? tmp : src2; if (srcEqualsDst) { diff --git a/glmgr/mathlite.h b/glmgr/mathlite.h index 11cf995..1149af5 100644 --- a/glmgr/mathlite.h +++ b/glmgr/mathlite.h @@ -19,7 +19,7 @@ #define FastSqrt(x) sqrt(x) -#ifndef Assert(x) +#ifndef Assert #define Assert(x) #endif diff --git a/public/steam/isteamfriends.h b/public/steam/isteamfriends.h index 269c346..3d575e3 100644 --- a/public/steam/isteamfriends.h +++ b/public/steam/isteamfriends.h @@ -38,6 +38,8 @@ const int k_cchMaxFriendsGroupName = 64; // maximum number of groups a single user is allowed const int k_cFriendsGroupLimit = 100; +const int k_cEnumerateFollowersMax = 50; + //----------------------------------------------------------------------------- // Purpose: list of states a friend can be in @@ -329,6 +331,11 @@ public: virtual bool SetListenForFriendsMessages( bool bInterceptEnabled ) = 0; virtual bool ReplyToFriendMessage( CSteamID steamIDFriend, const char *pchMsgToSend ) = 0; virtual int GetFriendMessage( CSteamID steamIDFriend, int iMessageID, void *pvData, int cubData, EChatEntryType *peChatEntryType ) = 0; + + // following apis + virtual SteamAPICall_t GetFollowerCount( CSteamID steamID ) = 0; + virtual SteamAPICall_t IsFollowing( CSteamID steamID ) = 0; + virtual SteamAPICall_t EnumerateFollowingList( uint32 unStartIndex ) = 0; }; #define STEAMFRIENDS_INTERFACE_VERSION "SteamFriends011" @@ -524,6 +531,33 @@ struct GameConnectedFriendChatMsg_t }; +struct FriendsGetFollowerCount_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 44 }; + EResult m_eResult; + CSteamID m_steamID; + int m_nCount; +}; + + +struct FriendsIsFollowing_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 45 }; + EResult m_eResult; + CSteamID m_steamID; + bool m_bIsFollowing; +}; + + +struct FriendsEnumerateFollowingList_t +{ + enum { k_iCallback = k_iSteamFriendsCallbacks + 46 }; + EResult m_eResult; + CSteamID m_rgSteamID[ k_cEnumerateFollowersMax ]; + int32 m_nResultsReturned; + int32 m_nTotalResultCount; +}; + #pragma pack( pop ) #endif // ISTEAMFRIENDS_H diff --git a/public/steam/isteamgameserver.h b/public/steam/isteamgameserver.h index 47477a2..a9fcdf0 100644 --- a/public/steam/isteamgameserver.h +++ b/public/steam/isteamgameserver.h @@ -376,6 +376,7 @@ struct ComputeNewPlayerCompatibilityResult_t int m_cPlayersThatDontLikeCandidate; int m_cPlayersThatCandidateDoesntLike; int m_cClanPlayersThatDontLikeCandidate; + CSteamID m_SteamIDCandidate; }; diff --git a/public/steam/isteamremotestorage.h b/public/steam/isteamremotestorage.h index e4bd312..ee6d986 100644 --- a/public/steam/isteamremotestorage.h +++ b/public/steam/isteamremotestorage.h @@ -40,9 +40,11 @@ const PublishedFileUpdateHandle_t k_PublishedFileUpdateHandleInvalid = 0xfffffff const uint32 k_cchPublishedDocumentTitleMax = 128 + 1; const uint32 k_cchPublishedDocumentDescriptionMax = 8000; +const uint32 k_cchPublishedDocumentChangeDescriptionMax = 256; const uint32 k_unEnumeratePublishedFilesMaxResults = 50; const uint32 k_cchTagListMax = 1024 + 1; const uint32 k_cchFilenameMax = 260; +const uint32 k_cchPublishedFileURLMax = 256; // Ways to handle a synchronization conflict enum EResolveConflict @@ -55,7 +57,7 @@ enum ERemoteStoragePlatform { k_ERemoteStoragePlatformNone = 0, k_ERemoteStoragePlatformWindows = (1 << 0), - k_ERemoteStoragePlatformOSX = (1 << 1 ), + k_ERemoteStoragePlatformOSX = (1 << 1), k_ERemoteStoragePlatformPS3 = (1 << 2), k_ERemoteStoragePlatformReserved1 = (1 << 3), k_ERemoteStoragePlatformReserved2 = (1 << 4), @@ -75,6 +77,34 @@ enum EWorkshopFileType { k_EWorkshopFileTypeCommunity = 0, k_EWorkshopFileTypeMicrotransaction = 1, + k_EWorkshopFileTypeCollection = 2, + k_EWorkshopFileTypeArt = 3, + k_EWorkshopFileTypeVideo = 4, + k_EWorkshopFileTypeScreenshot = 5, +}; + +enum EWorkshopVote +{ + k_EWorkshopVoteUnvoted = 0, + k_EWorkshopVoteFor = 1, + k_EWorkshopVoteAgainst = 2, +}; + +enum EWorkshopFileAction +{ + k_EWorkshopFileActionPlayed = 0, + k_EWorkshopFileActionCompleted = 1, +}; + +enum EWorkshopEnumerationType +{ + k_EWorkshopEnumerationTypeRankedByVote = 0, + k_EWorkshopEnumerationTypeRecent = 1, + k_EWorkshopEnumerationTypeTrending = 2, + k_EWorkshopEnumerationTypeFavoritesOfFriends = 3, + k_EWorkshopEnumerationTypeVotedByFriends = 4, + k_EWorkshopEnumerationTypeContentByFriends = 5, + k_EWorkshopEnumerationTypeRecentFromFollowedUsers = 6, }; //----------------------------------------------------------------------------- @@ -165,10 +195,21 @@ class ISteamRemoteStorage virtual SteamAPICall_t CommitPublishedFileUpdate( PublishedFileUpdateHandle_t updateHandle ) = 0; virtual SteamAPICall_t GetPublishedFileDetails( PublishedFileId_t unPublishedFileId ) = 0; virtual SteamAPICall_t DeletePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; + // enumerate the files that the current user published with this app virtual SteamAPICall_t EnumerateUserPublishedFiles( uint32 unStartIndex ) = 0; virtual SteamAPICall_t SubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; virtual SteamAPICall_t EnumerateUserSubscribedFiles( uint32 unStartIndex ) = 0; virtual SteamAPICall_t UnsubscribePublishedFile( PublishedFileId_t unPublishedFileId ) = 0; + virtual bool UpdatePublishedFileSetChangeDescription( PublishedFileUpdateHandle_t updateHandle, const char *pchChangeDescription ) = 0; + virtual SteamAPICall_t GetPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; + virtual SteamAPICall_t UpdateUserPublishedItemVote( PublishedFileId_t unPublishedFileId, bool bVoteUp ) = 0; + virtual SteamAPICall_t GetUserPublishedItemVoteDetails( PublishedFileId_t unPublishedFileId ) = 0; + virtual SteamAPICall_t EnumerateUserSharedWorkshopFiles( CSteamID steamId, uint32 unStartIndex, SteamParamStringArray_t *pRequiredTags, SteamParamStringArray_t *pExcludedTags ) = 0; + virtual SteamAPICall_t PublishVideo( const char *pchVideoURL, const char *pchPreviewFile, AppId_t nConsumerAppId, const char *pchTitle, const char *pchDescription, ERemoteStoragePublishedFileVisibility eVisibility, SteamParamStringArray_t *pTags ) = 0; + virtual SteamAPICall_t SetUserPublishedFileAction( PublishedFileId_t unPublishedFileId, EWorkshopFileAction eAction ) = 0; + virtual SteamAPICall_t EnumeratePublishedFilesByUserAction( EWorkshopFileAction eAction, uint32 unStartIndex ) = 0; + // this method enumerates the public view of workshop files + virtual SteamAPICall_t EnumeratePublishedWorkshopFiles( EWorkshopEnumerationType eEnumerationType, uint32 unStartIndex, uint32 unCount, uint32 unDays, SteamParamStringArray_t *pTags, SteamParamStringArray_t *pUserTags ) = 0; }; #define STEAMREMOTESTORAGE_INTERFACE_VERSION "STEAMREMOTESTORAGE_INTERFACE_VERSION006" @@ -374,11 +415,34 @@ struct RemoteStorageGetPublishedFileDetailsResult_t char m_pchFileName[k_cchFilenameMax]; // The name of the primary file int32 m_nFileSize; // Size of the primary file int32 m_nPreviewFileSize; // Size of the preview file + char m_rgchURL[k_cchPublishedFileURLMax]; // URL (for a video or a website) }; -// -// IMPORTANT! k_iClientRemoteStorageCallbacks + 19, 20 is used, see iclientremotestorage.h -// + +struct RemoteStorageEnumerateWorkshopFilesResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 19 }; + EResult m_eResult; + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + float m_rgScore[ k_unEnumeratePublishedFilesMaxResults ]; +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of GetPublishedItemVoteDetails +//----------------------------------------------------------------------------- +struct RemoteStorageGetPublishedItemVoteDetailsResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 20 }; + EResult m_eResult; + PublishedFileId_t m_unPublishedFileId; + int32 m_nVotesFor; + int32 m_nVotesAgainst; + int32 m_nReports; + float m_fScore; +}; //----------------------------------------------------------------------------- @@ -403,10 +467,61 @@ struct RemoteStoragePublishedFileUnsubscribed_t // -// IMPORTANT! k_iClientRemoteStorageCallbacks + 23 is used, see iclientremotestorage.h +// IMPORTANT! k_iClientRemoteStorageCallbacks + 23 is free to use // +//----------------------------------------------------------------------------- +// Purpose: The result of a call to UpdateUserPublishedItemVote() +//----------------------------------------------------------------------------- +struct RemoteStorageUpdateUserPublishedItemVoteResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 24 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id +}; + + +//----------------------------------------------------------------------------- +// Purpose: The result of a call to GetUserPublishedItemVoteDetails() +//----------------------------------------------------------------------------- +struct RemoteStorageUserVoteDetails_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 25 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id + EWorkshopVote m_eVote; // what the user voted +}; + +struct RemoteStorageEnumerateUserSharedWorkshopFilesResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 26 }; + EResult m_eResult; // The result of the operation. + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; +}; + +struct RemoteStorageSetUserPublishedFileActionResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 27 }; + EResult m_eResult; // The result of the operation. + PublishedFileId_t m_nPublishedFileId; // The published file id + EWorkshopFileAction m_eAction; // the action that was attempted +}; + +struct RemoteStorageEnumeratePublishedFilesByUserActionResult_t +{ + enum { k_iCallback = k_iClientRemoteStorageCallbacks + 28 }; + EResult m_eResult; // The result of the operation. + EWorkshopFileAction m_eAction; // the action that was filtered on + int32 m_nResultsReturned; + int32 m_nTotalResultCount; + PublishedFileId_t m_rgPublishedFileId[ k_unEnumeratePublishedFilesMaxResults ]; + uint32 m_rgRTimeUpdated[ k_unEnumeratePublishedFilesMaxResults ]; +}; + + #pragma pack( pop ) diff --git a/public/steam/lib/linux32/libsdkencryptedappticket.so b/public/steam/lib/linux32/libsdkencryptedappticket.so index 186a2d6..18a4280 100644 Binary files a/public/steam/lib/linux32/libsdkencryptedappticket.so and b/public/steam/lib/linux32/libsdkencryptedappticket.so differ diff --git a/public/steam/lib/win32/sdkencryptedappticket.dll b/public/steam/lib/win32/sdkencryptedappticket.dll index d6fa7f0..34303d9 100644 Binary files a/public/steam/lib/win32/sdkencryptedappticket.dll and b/public/steam/lib/win32/sdkencryptedappticket.dll differ diff --git a/public/steam/lib/win32/sdkencryptedappticket.lib b/public/steam/lib/win32/sdkencryptedappticket.lib index 8f68a83..3c6d0a0 100644 Binary files a/public/steam/lib/win32/sdkencryptedappticket.lib and b/public/steam/lib/win32/sdkencryptedappticket.lib differ diff --git a/public/steam/lib/win64/sdkencryptedappticket64.dll b/public/steam/lib/win64/sdkencryptedappticket64.dll index d62f783..18afe9d 100644 Binary files a/public/steam/lib/win64/sdkencryptedappticket64.dll and b/public/steam/lib/win64/sdkencryptedappticket64.dll differ diff --git a/public/steam/lib/win64/sdkencryptedappticket64.lib b/public/steam/lib/win64/sdkencryptedappticket64.lib index 4c6883c..62114f3 100644 Binary files a/public/steam/lib/win64/sdkencryptedappticket64.lib and b/public/steam/lib/win64/sdkencryptedappticket64.lib differ diff --git a/public/steam/matchmakingtypes.h b/public/steam/matchmakingtypes.h index b9eeb1a..f702dcb 100644 --- a/public/steam/matchmakingtypes.h +++ b/public/steam/matchmakingtypes.h @@ -148,7 +148,11 @@ inline const char *servernetadr_t::ToString( uint32 unIP, uint16 usPort ) const static char s[4][64]; static int nBuf = 0; unsigned char *ipByte = (unsigned char *)&unIP; +#ifdef VALVE_BIG_ENDIAN + _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[0]), (int)(ipByte[1]), (int)(ipByte[2]), (int)(ipByte[3]), usPort ); +#else _snprintf (s[nBuf], sizeof( s[nBuf] ), "%u.%u.%u.%u:%i", (int)(ipByte[3]), (int)(ipByte[2]), (int)(ipByte[1]), (int)(ipByte[0]), usPort ); +#endif const char *pchRet = s[nBuf]; ++nBuf; nBuf %= ( (sizeof(s)/sizeof(s[0])) ); diff --git a/public/steam/steamclientpublic.h b/public/steam/steamclientpublic.h index ad25b05..f217f9a 100644 --- a/public/steam/steamclientpublic.h +++ b/public/steam/steamclientpublic.h @@ -97,8 +97,9 @@ enum EResult k_EResultFacebookQueryError = 70, // Facebook query returned an error k_EResultExpiredLoginAuthCode = 71, // account login denied due to auth code expired k_EResultIPLoginRestrictionFailed = 72, - k_EResultAccountLocked = 73, + k_EResultAccountLockedDown = 73, k_EResultAccountLogonDeniedVerifiedEmailRequired = 74, + k_EResultNoMatchingURL = 75, }; // Error codes for use with the voice functions diff --git a/public/steam/steamps3params.h b/public/steam/steamps3params.h index 196fb7d..c0741b4 100644 --- a/public/steam/steamps3params.h +++ b/public/steam/steamps3params.h @@ -21,7 +21,7 @@ #define STEAM_PS3_COMMUNICATION_SIG_MAX 160 #define STEAM_PS3_LANGUAGE_MAX 64 #define STEAM_PS3_REGION_CODE_MAX 16 -#define STEAM_PS3_CURRENT_PARAMS_VER 1 +#define STEAM_PS3_CURRENT_PARAMS_VER 2 struct SteamPS3Params_t { uint32 m_unVersion; // set to STEAM_PS3_CURRENT_PARAMS_VER @@ -86,6 +86,7 @@ struct SteamPS3Params_t bool m_bNeedInit; } m_sysSysUtilUserInfo; + bool m_bIncludeNewsPage; }; diff --git a/public/steam/steamtypes.h b/public/steam/steamtypes.h index 613ea10..db3fb1a 100644 --- a/public/steam/steamtypes.h +++ b/public/steam/steamtypes.h @@ -102,6 +102,8 @@ const PackageId_t k_uPackageIdInvalid = 0xFFFFFFFF; typedef uint32 AppId_t; const AppId_t k_uAppIdInvalid = 0x0; +typedef uint64 AssetClassId_t; +const AssetClassId_t k_ulAssetClassIdInvalid = 0x0; typedef uint32 PhysicalItemId_t; const PhysicalItemId_t k_uPhysicalItemIdInvalid = 0x0; diff --git a/redistributable_bin/Steam.dll b/redistributable_bin/Steam.dll index 7b65d2c..5c6ca48 100644 Binary files a/redistributable_bin/Steam.dll and b/redistributable_bin/Steam.dll differ diff --git a/redistributable_bin/linux32/libsteam_api.so b/redistributable_bin/linux32/libsteam_api.so index 3c5f76b..1f0a184 100644 Binary files a/redistributable_bin/linux32/libsteam_api.so and b/redistributable_bin/linux32/libsteam_api.so differ diff --git a/redistributable_bin/linux32/libtier0_s.so b/redistributable_bin/linux32/libtier0_s.so index 14ac3c5..1651ae6 100644 Binary files a/redistributable_bin/linux32/libtier0_s.so and b/redistributable_bin/linux32/libtier0_s.so differ diff --git a/redistributable_bin/linux32/libvstdlib_s.so b/redistributable_bin/linux32/libvstdlib_s.so index 4e9e023..de2d82f 100644 Binary files a/redistributable_bin/linux32/libvstdlib_s.so and b/redistributable_bin/linux32/libvstdlib_s.so differ diff --git a/redistributable_bin/linux32/steamclient.so b/redistributable_bin/linux32/steamclient.so index 63b10e6..c9b4de2 100644 Binary files a/redistributable_bin/linux32/steamclient.so and b/redistributable_bin/linux32/steamclient.so differ diff --git a/redistributable_bin/osx32/libSteam.dylib b/redistributable_bin/osx32/libSteam.dylib index 4620436..f348b9b 100644 Binary files a/redistributable_bin/osx32/libSteam.dylib and b/redistributable_bin/osx32/libSteam.dylib differ diff --git a/redistributable_bin/osx32/libsteam_api.dylib b/redistributable_bin/osx32/libsteam_api.dylib index fbf0a65..45b1ae2 100644 Binary files a/redistributable_bin/osx32/libsteam_api.dylib and b/redistributable_bin/osx32/libsteam_api.dylib differ diff --git a/redistributable_bin/osx32/libtier0_s.dylib b/redistributable_bin/osx32/libtier0_s.dylib index cd3cba2..787727b 100644 Binary files a/redistributable_bin/osx32/libtier0_s.dylib and b/redistributable_bin/osx32/libtier0_s.dylib differ diff --git a/redistributable_bin/osx32/libvstdlib_s.dylib b/redistributable_bin/osx32/libvstdlib_s.dylib index 3420e91..27834fd 100644 Binary files a/redistributable_bin/osx32/libvstdlib_s.dylib and b/redistributable_bin/osx32/libvstdlib_s.dylib differ diff --git a/redistributable_bin/osx32/steamclient.dylib b/redistributable_bin/osx32/steamclient.dylib index 8c94d90..8a98121 100644 Binary files a/redistributable_bin/osx32/steamclient.dylib and b/redistributable_bin/osx32/steamclient.dylib differ diff --git a/redistributable_bin/steam_api.dll b/redistributable_bin/steam_api.dll index fa1ee11..19912c8 100644 Binary files a/redistributable_bin/steam_api.dll and b/redistributable_bin/steam_api.dll differ diff --git a/redistributable_bin/steam_api.lib b/redistributable_bin/steam_api.lib index dd0557e..a9a228c 100644 Binary files a/redistributable_bin/steam_api.lib and b/redistributable_bin/steam_api.lib differ diff --git a/redistributable_bin/steamclient.dll b/redistributable_bin/steamclient.dll index e17fca5..9019a86 100644 Binary files a/redistributable_bin/steamclient.dll and b/redistributable_bin/steamclient.dll differ diff --git a/redistributable_bin/tier0_s.dll b/redistributable_bin/tier0_s.dll index 0a5a859..2dbf031 100644 Binary files a/redistributable_bin/tier0_s.dll and b/redistributable_bin/tier0_s.dll differ diff --git a/redistributable_bin/vstdlib_s.dll b/redistributable_bin/vstdlib_s.dll index 04ec987..24c86fa 100644 Binary files a/redistributable_bin/vstdlib_s.dll and b/redistributable_bin/vstdlib_s.dll differ diff --git a/redistributable_bin/win64/steam_api64.dll b/redistributable_bin/win64/steam_api64.dll index 1122cb9..68a8301 100644 Binary files a/redistributable_bin/win64/steam_api64.dll and b/redistributable_bin/win64/steam_api64.dll differ diff --git a/redistributable_bin/win64/steam_api64.lib b/redistributable_bin/win64/steam_api64.lib index 147fc9e..fdc1237 100644 Binary files a/redistributable_bin/win64/steam_api64.lib and b/redistributable_bin/win64/steam_api64.lib differ diff --git a/steamworksexample/gameenginewin32.cpp b/steamworksexample/gameenginewin32.cpp index be013fd..c58e461 100644 --- a/steamworksexample/gameenginewin32.cpp +++ b/steamworksexample/gameenginewin32.cpp @@ -1115,7 +1115,7 @@ bool CGameEngineWin32::BDrawPoint( float xPos, float yPos, DWORD dwColor ) // Lock the vertex buffer into memory if ( !m_pPointVertexes ) { - if ( !BLockEntireVertexBuffer( m_hPointBuffer, (void**)&m_pPointVertexes, m_dwPointBufferBatchPos+m_dwPointsToFlush ? D3DLOCK_NOOVERWRITE : D3DLOCK_DISCARD ) ) + if ( !BLockEntireVertexBuffer( m_hPointBuffer, (void**)&m_pPointVertexes, (m_dwPointBufferBatchPos+m_dwPointsToFlush) ? D3DLOCK_NOOVERWRITE : D3DLOCK_DISCARD ) ) { m_pPointVertexes = NULL; OutputDebugString( "BDrawPoint failed because locking vertex buffer failed\n" ); diff --git a/tools/goldmaster/disk_assets/Setup.exe b/tools/goldmaster/disk_assets/Setup.exe index 2b238cc..9fe3e11 100644 Binary files a/tools/goldmaster/disk_assets/Setup.exe and b/tools/goldmaster/disk_assets/Setup.exe differ diff --git a/tools/goldmaster/disk_assets/resources/setup_english.ini b/tools/goldmaster/disk_assets/resources/setup_english.ini index a180cea..3be6d37 100644 Binary files a/tools/goldmaster/disk_assets/resources/setup_english.ini and b/tools/goldmaster/disk_assets/resources/setup_english.ini differ diff --git a/tools/goldmaster/disk_assets/setup.ini b/tools/goldmaster/disk_assets/setup.ini index bfa7c9a..1f866e8 100644 Binary files a/tools/goldmaster/disk_assets/setup.ini and b/tools/goldmaster/disk_assets/setup.ini differ