api
authorhgn <hgodden00@gmail.com>
Mon, 8 May 2023 23:17:22 +0000 (00:17 +0100)
committerhgn <hgodden00@gmail.com>
Mon, 8 May 2023 23:17:22 +0000 (00:17 +0100)
vg_platform.h
vg_steam_friends.h

index 98612048aa6533c562fedf8cd0fef4da5e675695..c7e178b93df5dbb8a891e52e30d09da31bc8c843 100644 (file)
@@ -61,6 +61,40 @@ VG_STATIC u32 vg_strncpy( const char *src, char *dst, u32 len,
    return 0;
 }
 
+typedef struct vg_str vg_str;
+struct vg_str{
+   char *buffer;
+   u32 i, len;
+};
+
+VG_STATIC void vg_strnull( vg_str *str, char *buffer, u32 len )
+{
+   str->buffer = buffer;
+   str->i = 0;
+   str->len = len;
+}
+
+VG_STATIC void vg_strcat( vg_str *str, const char *append )
+{
+   for( u32 i=0; str->i < str->len; i++, str->i ++ ){
+      str->buffer[ str->i ] = append[i];
+
+      if( append[i] == '\0' ) return;
+   }
+}
+
+VG_STATIC int vg_strgood( vg_str *str )
+{
+   if( str->i == str->len ){
+      if( str->buffer[str->i -1] == '\0' ) return 1;
+      else return 0;
+   }
+   else{
+      str->buffer[ str->i ++ ] = '\0';
+      return 1;
+   }
+}
+
 VG_STATIC u32 vg_strdjb2( const char *str )
 {
    u32 hash = 5381, c;
index 5815447f1d14adb06043f98988c2b65e21a5eb1c..4bcbebba95e0418c822cd21a3b024c91b4e98ac7 100644 (file)
  #pragma pack( push, 8 )
 #endif 
 
+typedef enum EPersonaChange EPersonaChange;
+enum EPersonaChange
+{
+       k_EPersonaChangeName            = 0x0001,
+       k_EPersonaChangeStatus          = 0x0002,
+       k_EPersonaChangeComeOnline      = 0x0004,
+       k_EPersonaChangeGoneOffline     = 0x0008,
+       k_EPersonaChangeGamePlayed      = 0x0010,
+       k_EPersonaChangeGameServer      = 0x0020,
+       k_EPersonaChangeAvatar          = 0x0040,
+       k_EPersonaChangeJoinedSource= 0x0080,
+       k_EPersonaChangeLeftSource      = 0x0100,
+       k_EPersonaChangeRelationshipChanged = 0x0200,
+       k_EPersonaChangeNameFirstSet = 0x0400,
+       k_EPersonaChangeBroadcast = 0x0800,
+       k_EPersonaChangeNickname =      0x1000,
+       k_EPersonaChangeSteamLevel = 0x2000,
+       k_EPersonaChangeRichPresence = 0x4000,
+};
+
 typedef enum EActivateGameOverlayToWebPageMode 
              EActivateGameOverlayToWebPageMode;
 enum EActivateGameOverlayToWebPageMode
@@ -34,6 +54,14 @@ struct GameOverlayActivated_t
 };
 enum { k_iGameOverlayActivated = k_iSteamFriendsCallbacks + 31 };
 
+typedef struct PersonaStateChange_t PersonaStateChange_t;
+struct PersonaStateChange_t
+{
+       u64 m_ulSteamID;                // steamID of the friend who changed
+       int m_nChangeFlags;             // what's changed
+};
+enum { k_iPersonaStateChange = k_iSteamFriendsCallbacks + 4 };
+
 #pragma pack(pop)
 
 typedef void ISteamFriends;
@@ -47,6 +75,10 @@ const char *SteamAPI_ISteamFriends_GetPersonaName( ISteamFriends* self );
 const char *SteamAPI_ISteamFriends_GetFriendPersonaName( ISteamFriends* self,
                                                          u64 steamIDFriend );
 
+steamapi_bool SteamAPI_ISteamFriends_RequestUserInformation( 
+      ISteamFriends* self, u64_steamid steamIDUser, 
+      steamapi_bool bRequireNameOnly );
+
 void SteamAPI_ISteamFriends_ActivateGameOverlay( ISteamFriends* self, 
       const char * pchDialog );
 void SteamAPI_ISteamFriends_ActivateGameOverlayToUser( ISteamFriends* self,