diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/Friends | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'public/Friends')
| -rw-r--r-- | public/Friends/AddOns/AddOnMessages.h | 56 | ||||
| -rw-r--r-- | public/Friends/AddOns/AddOnTypes.h | 18 | ||||
| -rw-r--r-- | public/Friends/AddOns/ISteamAddOn.h | 69 | ||||
| -rw-r--r-- | public/Friends/IFriendsNET.h | 41 | ||||
| -rw-r--r-- | public/Friends/IFriendsUser.h | 62 |
5 files changed, 246 insertions, 0 deletions
diff --git a/public/Friends/AddOns/AddOnMessages.h b/public/Friends/AddOns/AddOnMessages.h new file mode 100644 index 0000000..ca778f9 --- /dev/null +++ b/public/Friends/AddOns/AddOnMessages.h @@ -0,0 +1,56 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef ADDONMESSAGES_H +#define ADDONMESSAGES_H +#pragma once + +enum GameMessageIDs +{ + GAME_MSG_TEXT = 1, // text chat message + GAME_MSG_DATA, // binary game data + + GAME_MSG_INVITE_REQUEST, + GAME_MSG_INVITE_RESPONSE, + GAME_MSG_REJOIN_REQUEST, + GAME_MSG_REJOIN_RESPONSE, + + GAME_MSG_INVITE_PERMISSION, // ask permission to invite someone + GAME_MSG_INVITE_NOTIFY, // tell everybody that we're inviting + GAME_MSG_INVITE_DENIED, + + GAME_MSG_PLAYER_STATUS_UPDATE, + GAME_MSG_SETUP_INFO, // when user joins a game, host send the setup information of who's in the game + GAME_MSG_INVITE_CANCEL, // host has cancelled an invite + GAME_MSG_GAME_START, // if a game has a setup phase, this tells everybody the game has started + + GAME_MSG_PLAYER_KICK, // player kicked from game + GAME_MSG_UPDATING, + GAME_MSG_UP_TO_DATE, // player is up to date and ready to get data + + GAME_MSG_STARTING_CARD_HAND = 300, + GAME_MSG_STARTING_PLAYER, + GAME_MSG_CARD_PLAY, + + GAME_MSG_CHEAT_POSSIBLE = 400, // when host detects a possible cheat + + GAME_MSG_MOVE = 500, + GAME_MSG_COLOR_CHOICE, + GAME_MSG_RECONNECT_DATA, + GAME_MSG_QUIT, + GAME_MSG_PASS, + + GAME_MSG_ABORT, // phase these out + GAME_MSG_WAITING_ABORT, + +// GAME_MSG_CLOSE_WINDOW, + + // special individual game messages should take IDs 1000 and over +}; + + +#endif // ADDONMESSAGES_H + diff --git a/public/Friends/AddOns/AddOnTypes.h b/public/Friends/AddOns/AddOnTypes.h new file mode 100644 index 0000000..b6cf75f --- /dev/null +++ b/public/Friends/AddOns/AddOnTypes.h @@ -0,0 +1,18 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef ADDONTYPES_H +#define ADDONTYPES_H +#pragma once + +#ifndef WIN32 + typedef unsigned long long SessionInt64; +#else + typedef unsigned __int64 SessionInt64; +#endif + +#endif // ADDONTYPES_H + diff --git a/public/Friends/AddOns/ISteamAddOn.h b/public/Friends/AddOns/ISteamAddOn.h new file mode 100644 index 0000000..ff395c3 --- /dev/null +++ b/public/Friends/AddOns/ISteamAddOn.h @@ -0,0 +1,69 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: Interface to a Steam Add On +// +//=============================================================================// + +#ifndef ISTEAMADDON_H +#define ISTEAMADDON_H +#pragma once + +#include "interface.h" +#include "AddOnTypes.h" +#include <vgui_controls/Panel.h> + +class CUtlMsgBuffer; + +class ISteamAddOn : public IBaseInterface +{ +public: + // allows SteamAddOn to link to the core vgui factories + virtual bool Initialize(CreateInterfaceFn *vguiFactories, int factoryCount) = 0; + + // allows SteamAddOns to link to all other modules + virtual bool PostInitialize(CreateInterfaceFn *modules, int factoryCount) = 0; + + // when Friends closes down - all SteamAddOns are notified + virtual void Deactivate() = 0; + + // notifies the addon who its VGUI parent panel is + virtual void SetParent( vgui::Panel *parent ) = 0; + + // notifies the SteamAddOn of the user's ID and username. + // Note: username can be set mulitple times due to changing of name + virtual void SetUserID(unsigned int userID) = 0; + virtual void SetUserName(const char *userName) = 0; + + // Query if there are any 'open' sessions - open meaning allowing new users to join the sessions + virtual int QueryOpenSessionCount() = 0; + + // will be valid right after a call to QueryOpenInviteCount will set the addOnSessionID and hostname for + // any open sessions for this addOn. Return true if it's a valid index + virtual bool QueryOpenSessionInfo(int nOpenGameIndex, SessionInt64 &addOnSessionID, char *pszHostName) = 0; + + // returns true if this userID is involved in an addOnSession with this ID + virtual bool QueryUserInvolved(SessionInt64 addOnSessionID, unsigned int userID) = 0; + + // if session doesn't exist, then the SteamAddOn body should deal with it + virtual bool OnReceiveMsg(SessionInt64 addOnSessionID, CUtlMsgBuffer *msgBuffer) = 0; + + // Let's the SteamAddOn know when when any friend's status has changed + virtual void OnFriendStatusChanged() = 0; + + // A request to start/join this AddOn with this user ID/name. addOnSessionID will be zero if it's a new session request + virtual void OnInviteUser(unsigned int targetUserID, const char *username, SessionInt64 addOnSessionID) = 0; + + // user accepted this host's invite request + virtual void OnAcceptInviteRequest(unsigned int hostID, const char *hostUserName, SessionInt64 addOnSessionID, const char *pAppData, int dataLen) = 0; + + // user accepted this host's rejoin request + virtual void OnAcceptRejoinRequest(unsigned int hostID, const char *hostUserName, SessionInt64 addOnSessionID, const char *pAppData, int dataLen) = 0; + + // user starts this addOn from a menu + virtual void StartAddOn() = 0; +}; + +#define STEAMADDON_INTERFACE_VERSION "SteamAddOn007" + +#endif // ISTEAMADDON_H + diff --git a/public/Friends/IFriendsNET.h b/public/Friends/IFriendsNET.h new file mode 100644 index 0000000..b0b6c89 --- /dev/null +++ b/public/Friends/IFriendsNET.h @@ -0,0 +1,41 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef FRIENDSNET_INTERFACE_H +#define FRIENDSNET_INTERFACE_H +#pragma once + +class CUtlMsgBuffer; +class CServerSession; + +#include "interface.h" +#include "Friends/AddOns/AddOnTypes.h" + +class IFriendsNET : public IBaseInterface +{ +public: + // check if we have network information for this user + virtual bool CheckUserRegistered(unsigned int userID) = 0; + + // update a user's network information + virtual void UpdateUserNetInfo(unsigned int userID, unsigned int netSessionID, int serverID, int IP, int port) = 0; + + // set whether or not we send directly to user or through the server + virtual void SetUserSendViaServer(unsigned int userID, bool bSendViaServer) = 0; + + // Gets a blob of data that represents this user's information + virtual bool GetUserNetInfoBlob(unsigned int userID, unsigned int dataBlob[8]) = 0; + // Sets a user's information using the same blob of data type + virtual bool SetUserNetInfoBlob(unsigned int userID, const unsigned int dataBlob[8]) = 0; + + // send binary data to user, marked with game/sessionID + virtual void SendAddOnPacket(const char *pszGameID, SessionInt64 addOnSessionID, unsigned int userID, const CUtlMsgBuffer& buffer) = 0; +}; + +#define FRIENDSNET_INTERFACE_VERSION "FriendsNET003" + +#endif // FRIENDSNET_INTERFACE_H + diff --git a/public/Friends/IFriendsUser.h b/public/Friends/IFriendsUser.h new file mode 100644 index 0000000..4c9375a --- /dev/null +++ b/public/Friends/IFriendsUser.h @@ -0,0 +1,62 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef IFRIENDSUSER_H +#define IFRIENDSUSER_H +#ifdef _WIN32 +#pragma once +#endif + +#include "interface.h" + +//----------------------------------------------------------------------------- +// Purpose: Interface to accessing information about Friends Users +//----------------------------------------------------------------------------- +class IFriendsUser : public IBaseInterface +{ +public: + // returns true if the interface is ready for use + virtual bool IsValid() = 0; + + // returns the Friends ID of the current user + virtual unsigned int GetFriendsID() = 0; + + // returns information about a user + // information may not be known about some users, "" will be returned + virtual const char *GetUserName(unsigned int friendsID) = 0; + virtual const char *GetFirstName(unsigned int friendsID) = 0; + virtual const char *GetLastName(unsigned int friendsID) = 0; + virtual const char *GetEmail(unsigned int friendsID) = 0; + + // returns true if buddyID is a buddy of the current user + // ie. the current is authorized to see when the buddy is online + virtual bool IsBuddy(unsigned int buddyID) = 0; + + // requests authorization from a user + virtual void RequestAuthorizationFromUser(unsigned int potentialBuddyID) = 0; + + // returns the status of the buddy, > 0 is online, 4 is ingame + virtual int GetBuddyStatus(unsigned int friendsID) = 0; + + // gets the IP address of the server the buddy is on, returns false if couldn't get + virtual bool GetBuddyGameAddress(unsigned int friendsID, int *ip, int *port) = 0; + + // returns the number of buddies + virtual int GetNumberOfBuddies() = 0; + + // returns the FriendsID of a buddy - buddyIndex is valid in the range [0, GetNumberOfBuddies) + virtual unsigned int GetBuddyFriendsID(int buddyIndex) = 0; + + // sets whether or not the user can receive messages at this time + // messages will be queued until this is set to true + virtual void SetCanReceiveMessages(bool state) = 0; +}; + +#define FRIENDSUSER_INTERFACE_VERSION "FriendsUser001" + + +#endif // IFRIENDSUSER_H |