00001 #ifndef _GSCLIENCLASS_H_ 00002 #define _GSCLIENCLASS_H_ 00003 00004 #include "GSErrors.h" 00005 #include "GSLoginCB.h" 00006 #include "GSFriendsCB.h" 00007 #include "GSLobbyCB.h" 00008 #include "GSPersistentCB.h" 00009 #include "GSLadderQueryCB.h" 00010 #include "GSRemoteAlgorithmCB.h" 00011 #include "LadderDefines.h" 00012 #include "RemoteAlgorithmDefines.h" 00013 00014 class CGLClientLIB; 00015 00016 class clGLClient : public clLoginCallbacks, public clFriendsCallbacks, 00017 public clLobbyCallbacks, public clPersistentCallbacks, 00018 public clLadderQueryCallbacks 00019 { 00020 public: 00021 clGLClient(); 00022 virtual ~clGLClient(); 00023 00024 GSbool GL_AddRouterPing(GSint lID, GSchar *szIPAddress, GSint lPort); 00025 GSbool GL_GetFirstPing(GSint *plID); 00026 GSbool GL_ClearRouterPing(); 00027 00028 //Login Messages 00029 GSbool Login_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800); 00030 GSbool LoginSend_Connect(const GSchar* szAddress, GSushort lPort); 00031 GSbool LoginSend_Disconnect(); 00032 GSbool LoginSend_LoginRouter(const GSchar* szAlias, const GSchar* szPassword, 00033 const GSchar* szVersion, GSbool bPublicIP = GS_TRUE); 00034 GSbool LoginSend_LoginWaitModule(const GSchar* szAlias); 00035 GSbool LoginSend_JoinWaitModule(); 00036 GSbool LoginSend_PlayerInfo(const GSchar* szAlias); 00037 GSbool LoginSend_Sleep(); 00038 GSbool LoginSend_WakeUp(); 00039 GSbool LoginSend_ModifyAccount(const GSchar* szPassword, const GSchar* szFirstName, 00040 const GSchar* szLastName, const GSchar* szEmail, const GSchar* szCountry); 00041 GSbool LoginSend_CreateAccount(const GSchar* szVersion, const GSchar* szNickName, const GSchar* szPassword, const GSchar* szFirstName, 00042 const GSchar* szLastName, const GSchar* szEmail, const GSchar* szCountry); 00043 GSbool LoginSend_RequestMOTD(const GSchar *szLanguage); 00044 00045 //Friends Messages 00046 GSbool Friends_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800); 00047 GSbool FriendsSend_Connect(); 00048 GSbool FriendsSend_Disconnect(); 00049 GSbool FriendsSend_Login(GSint lStatus = 0, GSint lMood = 0); 00050 GSbool FriendsSend_AddFriend(const GSchar* szFriend, const GSchar* szGroup, GSint lOptions); 00051 GSbool FriendsSend_DelFriend (const GSchar* szFriend); 00052 GSbool FriendsSend_FriendList(); 00053 00054 GSRESULT FriendsSend_IgnorePlayer( const GSchar * szPlayer ); 00055 GSRESULT FriendsSend_UnignorePlayer( const GSchar * szPlayer); 00056 GSRESULT FriendsSend_ListIgnoredPlayers(); 00057 00058 GSbool FriendsSend_PagePlayer(const GSchar* pszAlias, const GSchar* szMessage); 00059 GSbool FriendsSend_PeerPlayer(const GSchar* pszAlias, GSvoid *p_Buffer, GSuint uiLength); 00060 GSbool FriendsSend_StatusChange(GSint lStatus, GSint lMood); 00061 GSbool FriendsSend_ChangeFriend(const GSchar* szFriend, const GSchar* szGroup, GSint lOptions); 00062 GSbool FriendsSend_SearchPlayer(const GSchar* pszAlias, const GSchar* pszSurName, const GSchar* pszFirstName, const GSchar* pszCountry, const GSchar* pszEmail, GSint lSex, const GSchar* pszGame); 00063 GSbool FriendsSend_GetPlayerScores(const GSchar* pszAlias); 00064 00065 //Lobby messages 00066 GSbool Lobby_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800); 00067 GSbool LobbySend_Connect(); 00068 GSbool LobbySend_Login(const GSchar* szGames, GSbool bPublicIP = GS_TRUE, GSushort usPlayerStatus = 0 ); 00069 GSbool LobbySend_Disconnect(GSint iLobbyServerID); 00070 GSbool LobbySend_DisconnectAll(); 00071 00072 GSbool LobbySend_CreateRoom(GSint iParentGroupID, GSint iLobbyServerID, const GSchar *szRoomName, 00073 const GSchar *szGames, GSushort usRoomType, GSushort usMaxPlayers, GSushort usMaxVisitors, 00074 const GSvoid *vpData, GSint iSize, const GSvoid* vpAltGroupInfo, GSint iAltGroupInfoSize, 00075 const GSchar *szPassword, const GSchar *szGameVersion, const GSchar *szGSVersion); 00076 00077 GSbool LobbySend_JoinLobby(GSint iGroupID, GSint iLobbyServerID, 00078 const GSchar *szPassword, GSint iConfig = 0); 00079 GSbool LobbySend_JoinRoom(GSint iGroupID, GSint iLobbyServerID, const GSchar *szPassword, 00080 GSbool bVisitor, const GSchar *szVersion, GSint iConfig = 0); 00081 GSbool LobbySend_LeaveGroup(GSint iGroupID, GSint iLobbyServerID); 00082 00083 GSbool LobbySend_GetGroupInfo(GSint iGroupID, GSint iLobbyServerID, GSint iconfig); 00084 GSbool LobbySend_GetAlternateGroupInfo(GSint iGroupID, GSint iLobbyServerID ); 00085 00086 GSbool LobbySend_InitMatchResults(GSuint uiMatchID); 00087 GSbool LobbySend_SetMatchResult(GSchar *szAlias, GSuint uiFieldID, GSint iFieldValue); 00088 GSbool LobbySend_SubmitMatchResult(GSint iGroupID, GSint iLobbyServerID); 00089 GSbool LobbySend_ClearMatchResult(); 00090 00091 GSbool LobbySend_StartMatch(GSint iGroupID, GSint iLobbyServerID, GSuint uiMode = 0 ); 00092 GSbool LobbySend_MatchFinish(GSint iGroupID, GSint iLobbyServerID); 00093 GSbool LobbySend_PlayerMatchStarted(GSint iGroupID, GSint iLobbyServerID); 00094 GSbool LobbySend_PlayerMatchFinished(GSint iGroupID, GSint iLobbyServerID); 00095 00096 GSbool LobbySend_NewMaster(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias); 00097 GSbool LobbySend_PlayerKick(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias, GSchar *szReason); 00098 GSbool LobbySend_GetParentGroupID(GSint iGroupID, GSint iLobbyServerID); 00099 GSbool LobbySend_UpdateRoomConfig(GSint iGroupID, GSint iLobbyServerID, GSbyte bDedicatedServer, 00100 GSbyte bOpen, GSbyte bScore_Submission, GSint iMaxPlayers, 00101 GSint iMaxVisitors, const GSchar* szPassword, const GSvoid* vpData, 00102 GSint iSize, const GSvoid* vpAltGroupInfo, GSint iGroupInfoSize ); 00103 00104 GSbool LobbySend_GameStart(GSint iGroupID, GSint iLobbyServerID); 00105 GSbool LobbySend_GameReady(GSint iGroupID, GSint iLobbyServerID, GSvoid* vpGameData, GSint iSize, 00106 GSushort usPort = 0, GSchar *szIPAddress = 0); 00107 GSbool LobbySend_GameFinish(GSint iGroupID, GSint iLobbyServerID); 00108 GSbool LobbySend_GameConnected(GSint iGroupID, GSint iLobbyServerID); 00109 00110 GSbool LobbySend_UpdateGameInfo(GSint iGroupID, GSint iLobbyServerID, GSvoid* vpGameData, GSint iSize, 00111 GSushort usPort = 0, GSchar *szIPAddress = 0); 00112 GSbool LobbySend_PlayerBan(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias, GSchar *szReason); 00113 GSbool LobbySend_PlayerUnBan(GSint iGroupID, GSint iLobbyServerID, GSchar *szAlias); 00114 GSbool LobbySend_GetPlayerBannedList(GSint iGroupID, GSint iLobbyServerID); 00115 GSbool LobbySend_SetPlayerInfo(GSvoid *vpPlayerData, GSint iPlayerDataSize); 00116 GSbool LobbySend_GetPlayerGroups(GSchar *szAlias); 00117 GSbool LobbySend_ChangeRequestedLobbies(const GSchar* szGames); 00118 00119 GSbool PS_Engine(GSuint uiMaxPostingDelay = 500, GSuint uiMaxsOperationalDelay = 800); 00120 GSbool PSSend_Login(); 00121 GSbool PSSend_Disconnect(); 00122 GSuint PSSend_GetPrivateData(const GSchar *szGame, GSint iEventID, 00123 GSint iRecordID); 00124 GSuint PSSend_SetPrivateData(const GSchar *szGame, GSint iEventID, 00125 GSint iRecordID, const GSvoid *vpData, GSint iSize); 00126 GSuint PSSend_GetPublicData(const GSchar *szGame, GSint iEventID, 00127 GSint iRecordID, const GSchar *szPlayerAlias = 0); 00128 GSuint PSSend_SetPublicData(const GSchar *szGame, GSint iEventID, 00129 GSint iRecordID, const GSvoid *vpData, GSint iSize); 00130 00131 GSbool LadderQuery_Initialize(GSchar *szLocale); 00132 GSbool LadderQuery_Uninitialize(); 00133 GSbool LadderQuery_Engine(GSuint uiMaxPostingDelay = 500,GSuint uiMaxsOperationalDelay = 800); 00134 GSuint LadderQuery_SendRequest(); 00135 00136 GSbool LadderQuery_CreateRequest(GSchar *szGameName, GSuint uiEvent = 0, GSuint uiMode = 0); 00137 GSbool LadderQuery_RequestPivotUser(const GSchar *pszEntry, GSuint uiNumberOfEntries); 00138 GSbool LadderQuery_RequestPivotRow(GSuint uiEntry, GSuint uiNumberOfEntries); 00139 GSbool LadderQuery_RequestSet(const GSchar *pszEntries[], GSuint uiNumberOfEntries); 00140 GSbool LadderQuery_RequestOrderedList(GSuint uiFirstEntry, GSuint uiNumberOfEntries); 00141 00142 GSbool LadderQuery_AddSortConstraint(const GSchar *pszField, GSbool bSortDirection); 00143 GSbool LadderQuery_AddFilterConstraint(const LADDER_FILTER *pLadderFilter[], GSuint uiListOfFilters); 00144 GSbool LadderQuery_AddDisplayConstraint(const GSchar *pszFields[], GSuint uiNumberOfFields); 00145 00146 GSbool LadderQuery_GetResultSearchCount(GSuint uiRequestID, GSuint & uiCount); 00147 GSbool LadderQuery_GetResultEntryCount(GSuint uiRequestID, GSuint & uiCount); 00148 GSbool LadderQuery_GetResultFieldCaption(GSuint uiRequestID, const GSchar *pszField, GSchar * pszCaption); 00149 GSbool LadderQuery_StartResultEntryEnumeration(GSuint uiRequestID, GSuint uiStartEntry); 00150 GSbool LadderQuery_NextResultEntry(GSuint uiRequestID); 00151 GSbool LadderQuery_GetCurrentEntryField(GSuint uiRequestID, const GSchar *pszField, GSint & iValue); 00152 GSbool LadderQuery_GetCurrentEntryFieldAsString(GSuint uiRequestID, const GSchar *pszField, GSchar * pszValue); 00153 GSvoid LadderQuery_ReleaseResult(GSuint uiRequestID); 00154 00155 GSRESULT RemoteAlgorithm_Initialise(const GSchar * szGameName); 00156 GSRESULT RemoteAlgorithm_Uninitialise(); 00157 GSRESULT RemoteAlgorithm_Engine(GSuint uiMaxPostingDelay = 500, 00158 GSuint uiMaxsOperationalDelay = 800); 00159 GSRESULT RemoteAlgorithm_Execute(GSuint uiAlgoId, 00160 RAE_VALUE * pInput, GSuint uiNumInput, 00161 RemoteAlgorithm_OutputCB fOutput, 00162 GSvoid * pData, GSuint & uiRequest); 00163 00164 private: 00165 CGLClientLIB *m_pClientLIB; 00166 00167 }; 00168 00169 #endif //_GSCLIENCLASS_H_
Ubi.com GameService SDK - ©UbiSoft Entertainment 2002
GameService development team