1249 lines
52 KiB
C++
1249 lines
52 KiB
C++
|
|
//****************************************************************************
|
|
//* Author: Guillaume Plante <gsdevteam@ubisoft.com>
|
|
//* Date: 2001-09-20
|
|
/*! \file GSLobbyCB.h
|
|
* \brief Callback functions for the <b><i>lobby service</i></b>.
|
|
*
|
|
* This file contains all callback functions declaration for the lobby
|
|
* service.
|
|
*/
|
|
//****************************************************************************
|
|
|
|
#ifndef _GSLOBBYCB_H_
|
|
#define _GSLOBBYCB_H_
|
|
|
|
#include "GSTypes.h"
|
|
#include "LadderDefines.h"
|
|
|
|
#ifdef __cplusplus
|
|
class clLobbyCallbacks
|
|
{
|
|
public:
|
|
|
|
virtual GSvoid LobbyRcv_LoginReply(GSubyte ubType, GSint iReason) = 0;
|
|
virtual GSvoid LobbyRcv_LobbyDisconnection(GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_LobbyDisconnectAll() = 0;
|
|
virtual GSvoid LobbyRcv_CreateRoomReply(GSubyte ubType, GSint iReason,
|
|
GSchar *szRoom, GSint iGroupID, GSint iLobbySrvID)=0;
|
|
virtual GSvoid LobbyRcv_JoinLobbyReply(GSubyte ubType, GSint iReason,
|
|
GSchar *szReason, GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_JoinRoomReply(GSubyte ubType, GSint iReason,
|
|
GSchar *szReason, GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_NewRoom(GSshort siGroupType, GSchar *szGroupName,
|
|
GSint iGroupID, GSint iLobbySrvID, GSint iParentID,GSint iConfig,
|
|
GSshort siGroupLevel,GSchar *szMaster, GSchar *szAllowedGames,
|
|
GSchar *szGames, GSchar *szGameVersion, GSchar *szGSVersion,
|
|
GSvoid *vpInfo, GSint iSize,GSuint uiMaxPlayer, GSuint uiNbrPlayer,
|
|
GSuint uiMaxVisitor, GSuint uiNbrVisitor, GSchar *szIPAddress,
|
|
GSchar *szAltIPAddress, GSint iEventID) = 0;
|
|
virtual GSvoid LobbyRcv_NewLobby(GSshort siGroupType, GSchar *szGroupName,
|
|
GSint iGroupID, GSint iLobbySrvID, GSint iParentID, GSint iConfig,
|
|
GSshort sGroupLevel, GSchar *szMaster, GSchar *szAllowedGames,
|
|
GSchar *szGames, GSvoid *vpInfo, GSint iSize, GSuint uiMaxMember,
|
|
GSuint uiNbrMember, GSint iEventID) = 0;
|
|
virtual GSvoid LobbyRcv_RoomInfo(GSshort siGroupType, GSchar *szGroupName,
|
|
GSint iGroupID, GSint iLobbySrvID, GSint iParentID, GSint iConfig,
|
|
GSshort sGroupLevel, GSchar *szMaster, GSchar *szAllowedGames,
|
|
GSchar *szGames, GSchar *szGameVersion, GSchar *szGSVersion,
|
|
GSvoid *vpInfo, GSint iSize, GSuint uiMaxPlayer, GSuint uiNbrPlayer,
|
|
GSuint uiMaxVisitor, GSuint uiNbrVisitor, GSchar *szIPAddress,
|
|
GSchar *szAltIPAddress, GSint iEventID) = 0;
|
|
virtual GSvoid LobbyRcv_LobbyInfo(GSshort siGroupType, GSchar *szGroupName,
|
|
GSint iGroupID, GSint iLobbySrvID, GSint iParentID, GSint iConfig,
|
|
GSshort sGroupLevel, GSchar *szMaster, GSchar *szAllowedGames,
|
|
GSchar *szGames, GSvoid *vpInfo, GSint iSize, GSuint uiMaxMember,
|
|
GSuint uiNbrMember, GSint iEventID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_GroupInfoGet(GSubyte ubType, GSint iLobbyID,
|
|
GSint iRoomID)=0;
|
|
|
|
virtual GSvoid LobbyRcv_GroupRemove(GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_MemberJoined(GSchar *szUsername, GSbool bVisitor,
|
|
GSint* piGroupID, GSushort usNbGroup, GSint iLobbySrvID,
|
|
GSchar *szIPAddress, GSchar *szAltIPAddress, GSushort usPing,
|
|
GSvoid *vpPlayerData, GSint iDataSize, GSbool bJoin,
|
|
GSushort usPlayerStatus ) = 0;
|
|
virtual GSvoid LobbyRcv_MemberLeave(GSchar *szUsername, GSint iGroupID,
|
|
GSint iLobbySrvID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_StartMatchReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_MasterNewReply(GSubyte ubType, GSint iReason,
|
|
GSchar *szUsername, GSint iGroupID, GSint iLobbyServerID) = 0;
|
|
virtual GSvoid LobbyRcv_MasterChanged(GSint iGroupID, GSint iLobbySrvID,
|
|
GSchar *szUsername, GSchar *szIPAddress, GSchar *szAltIPAddress) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_MatchFinishReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_KickOut(GSint iGroupID, GSint iLobbySrvID,
|
|
GSchar *szReason) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerKickReply(GSubyte ubType, GSint iReason,
|
|
GSchar *szUsername, GSint iGroupID, GSint iLobbyServerID) = 0;
|
|
virtual GSvoid LobbyRcv_ParentGroupIDReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID, GSint iParentGroupID) = 0;
|
|
virtual GSvoid LobbyRcv_GetAlternateGroupInfoReply( GSubyte ubType,
|
|
GSint iReason, const GSvoid* pcAltGroupInfo,
|
|
GSint iAltGroupInfoSize, GSint iGroupID, GSint iLobbyServerID ) = 0;
|
|
virtual GSvoid LobbyRcv_GroupLeaveReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_GroupConfigUpdate(GSint iGroupID, GSint iLobbySrvID,
|
|
GSint iFlags) = 0;
|
|
virtual GSvoid LobbyRcv_MatchStarted(GSint iGroupID, GSint iLobbyServerID,
|
|
GSuint uiMatchID) = 0;
|
|
virtual GSvoid LobbyRcv_GroupConfigUpdateReply(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_SubmitMatchResultReply(GSubyte ubType,
|
|
GSint iReason, GSint iMatchID) = 0;
|
|
virtual GSvoid LobbyRcv_UpdatePing(GSint iGroupID, GSint iLobbySrvID,
|
|
GSchar *szUsername, GSushort usPing) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_StartGameReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_GameReadyReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_GameStarted(GSint iGroupID, GSint iLobbyServerID,
|
|
GSvoid *vpGameData, GSint iSize, GSchar *szIPAddress,
|
|
GSchar *szAltIPAddress, GSushort usPort) = 0;
|
|
virtual GSvoid LobbyRcv_NewGameMember(GSint iGroupID, GSint iLobbyServerID,
|
|
GSchar *szUsername, GSbool bVisitor) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_UpdateGameInfoReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerBanReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID, GSchar *szUsername) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerUnBanReply(GSubyte ubType, GSint iReason,
|
|
GSint iGroupID, GSint iLobbySrvID, GSchar *szUsername) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerBanList(GSint iGroupID, GSint iLobbySrvID,
|
|
GSchar *szUsername) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerBanned(GSint iGroupID, GSint iLobbySrvID,
|
|
GSchar *szReason) = 0;
|
|
virtual GSvoid LobbyRcv_MatchReady(GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_InfoRefresh(GSint iLobbySrvID) = 0;
|
|
|
|
virtual GSvoid LobbyRcv_SetPlayerInfoReply(GSubyte ubType,
|
|
GSint iReason) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerInfoUpdate(GSchar *szUsername,
|
|
GSvoid *vpPlayerData, GSint iPlayerDataSize) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerGroupList(GSchar *szUsername,
|
|
GSint iGroupID, GSint iLobbySrvID) = 0;
|
|
virtual GSvoid LobbyRcv_PlayerUpdateStatus( GSchar* szMember,
|
|
GSushort usPlayerStatus ) = 0;
|
|
virtual GSvoid LobbyRcv_FinalMatchResults(GSuint uiMatchId, GSubyte ubType,
|
|
GSint iReason, const LADDER_ROW *pResults, GSuint uiNumResults) = 0;
|
|
};
|
|
|
|
#endif //__cplusplus
|
|
|
|
/*! @addtogroup group_LobbyCB
|
|
@{
|
|
*/
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_LoginReply
|
|
/*!
|
|
\brief Receive status of the login request
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the router
|
|
after asking to join the lobby server
|
|
\par Related Function:
|
|
LobbySend_Login()
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param lReason The reason of failure if ubType is GSFAIL
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_LoginReply)(GSubyte ubType,
|
|
GSint iReason);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_LobbyDisconnection
|
|
/*!
|
|
\brief Client as been disconnected from lobby server
|
|
\par Description:
|
|
This callback will be called when the client has been disconnected from
|
|
a specific lobby server
|
|
\par Related Function:
|
|
LobbySend_Disconnection()
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_LobbyDisconnection)(GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_LobbyDisconnectAll
|
|
/*!
|
|
\brief Client as been disconnected from lobby server
|
|
\par Description:
|
|
This callback will be called when the client has been disconnected from all
|
|
the available lobby server
|
|
\par Related Function:
|
|
LobbySend_DisconnectAll()
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_LobbyDisconnectAll)();
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_CreateRoomReply
|
|
/*!
|
|
\brief Receive status of the create room request
|
|
\par Description:
|
|
This callback will be called when the client receive a response from
|
|
the lobby server after asking to reate a new room
|
|
\par Related Function:
|
|
LobbySend_CreateRoom()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The Parent group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTINGROUP: The player isn't in the parent group.<br>
|
|
ERRORLOBBYSRV_INVALIDGROUPNAME: The room name isn't valid.<br>
|
|
ERRORLOBBYSRV_GROUPALREADYEXIST: The room already exists.<br>
|
|
ERRORLOBBYSRV_GAMENOTALLOWED: The gamename is not allowed in the parent
|
|
lobby.<br>
|
|
ERRORLOBBYSRV_NOMOREPLAYERS: The usMaxPlayers was to big.<br>
|
|
ERRORLOBBYSRV_SPECTATORNOTALLOWED: Spectators are not allowed.<br>
|
|
ERRORLOBBYSRV_NOMORESPECTATORS: The usMaxVisitors was to big.<br>
|
|
ERRORLOBBYSRV_WRONGGROUPTYPE: The usRoomType was the wrong type.<br>
|
|
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szRoom The name of the newly created room
|
|
\param iGroupID The group id of the newly created room
|
|
\param iLobbySrvID The id of the server on which the specified group is
|
|
located
|
|
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_CreateRoomReply)(GSubyte ubType,
|
|
GSint iReason, GSchar* szRoom, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_NewRoom
|
|
/*!
|
|
\brief Receive a message informing of a newly created room
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the
|
|
lobby server informing of a newly created room.
|
|
\par Related Function:
|
|
LoginSend_CreateRoom()
|
|
|
|
\param sGroupType The type of room. (ROOM_DIRECTPLAY, ROOM_GAMEMODULE,
|
|
ROOM_P2P, ROOM_CLIENTHOST)
|
|
\param szGroupName The name of the room
|
|
\param iGroupID The id of the room.
|
|
\param iLobbySrvID The id of the server on which the specified room is
|
|
located
|
|
\param iParentID The id of the parent group.
|
|
\param iConfig The room configuration flag
|
|
\param szMaster The name of the master of the room.
|
|
\param szAllowedGames The games allowed in this room.
|
|
\param szGames The games that can be played in the room.
|
|
\param szGameVersion The version of the game (information only)
|
|
\param szGSVersion The version of the gs-game (important, this correct version
|
|
must be used to join the room)
|
|
\param vpInfo A pointer to the game data
|
|
\param iSize The size of the game data structure
|
|
\param usMaxPlayer The maximum number of players allowed in that room
|
|
\param usNbrPlayer The number of players currently in that room
|
|
\param usMaxVisitor The maximum number of visitors allowed in that room
|
|
\param usNbrVisitor The number of visitors currently in that room
|
|
\param szIPAddress The ip address of the host (master) of the room
|
|
\param szAltIPAddress The alternate ip address of the host (master) of the room
|
|
\param usNbrMember The event id for that room
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_NewRoom)(GSshort sGroupType,
|
|
GSchar *szGroupName, GSint iGroupID, GSint iLobbySrvID, GSint iParentID,
|
|
GSint iConfig, GSshort sGroupLevel, GSchar *szMaster,
|
|
GSchar *szAllowedGames, GSchar *szGames, GSchar *szGameVersion,
|
|
GSchar *szGSVersion, GSvoid *vpInfo, GSint iSize, GSuint uiMaxPlayer,
|
|
GSuint uiNbrPlayer, GSuint uiMaxVisitor, GSuint uiNbrVisitor,
|
|
GSchar *szIPAddress, GSchar *szAltIPAddress, GSint iEventID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_NewLobby
|
|
/*!
|
|
\brief Receive a message informing of a newly created lobby
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the
|
|
lobby server informing of a newly created lobby.
|
|
\par Related Function:
|
|
LoginSend_CreateLobby()
|
|
|
|
\param sGroupType The type of lobby.
|
|
\param szGroupName The name of the lobby.
|
|
\param iGroupID The id of the lobby.
|
|
\param iLobbySrvID The id of the server on which the specified lobby is located
|
|
\param iParentID The id of the parent group.
|
|
\param iConfig The lobby configuration flag.
|
|
\param szMaster The name of the master of the lobby.
|
|
\param szAllowedGames The games allowed in this lobby and in the child groups.
|
|
\param szGames The games that can be played in the lobby.
|
|
\param vpInfo A pointer to the game data.
|
|
\param iSize The size of the game data structure.
|
|
\param usMaxMember The maximum number of members allowed in that lobby.
|
|
\param usNbrMember The number of member currently in that lobby.
|
|
\param iEventID The event id for that lobby and its childs groups
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_NewLobby)(GSshort sGroupType,
|
|
GSchar *szGroupName, GSint iGroupID, GSint iLobbySrvID, GSint iParentID,
|
|
GSint iConfig, GSshort siGroupLevel, GSchar *szMaster,
|
|
GSchar *szAllowedGames, GSchar *szGames, GSvoid *vpInfo, GSint iSize,
|
|
GSuint uiMaxMember, GSuint uiNbrMember, GSint iEventID);
|
|
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_RoomInfo
|
|
/*!
|
|
\brief Receive a message about updated room infomations.
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the
|
|
lobby server updating room information.
|
|
\par Related Function:
|
|
LoginSend_CreateRoom()
|
|
|
|
\param siGroupType The type of room. (ROOM_DIRECTPLAY, ROOM_GAMEMODULE,
|
|
ROOM_P2P, ROOM_CLIENTHOST)
|
|
\param szGroupName The name of the room
|
|
\param iGroupID The id of the room.
|
|
\param iLobbySrvID The id of the server on which the specified room is
|
|
located
|
|
\param iParentID The id of the parent group.
|
|
\param iConfig The room configuration flag
|
|
\param szMaster The name of the master of the room.
|
|
\param szAllowedGames The games allowed in this room.
|
|
\param szGames The games that can be played in the room
|
|
\param szGameVersion The version of the game (information only)
|
|
\param szGSVersion The version of the gs-game (important, this correct version
|
|
must be used to join the room)
|
|
\param vpInfo A pointer to the game data
|
|
\param iSize The size of the game data structure
|
|
\param usMaxPlayer The maximum number of players allowed in that room
|
|
\param usNbrPlayer The number of players currently in that room
|
|
\param usMaxVisitor The maximum number of visitors allowed in that room
|
|
\param usNbrVisitor The number of visitors currently in that room
|
|
\param szIPAddress The ip address of the host (master) of the room
|
|
\param szAltIPAddress The alternate ip address of the host (master) of the
|
|
room
|
|
\param usNbrMember The event id for that room
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_RoomInfo)(GSshort sGroupType,
|
|
GSchar *szGroupName, GSint iGroupID, GSint iLobbySrvID, GSint iParentID,
|
|
GSint iConfig, GSshort sGroupLevel, GSchar *szMaster,
|
|
GSchar *szAllowedGames,GSchar *szGames, GSchar *szGameVersion,
|
|
GSchar *szGSVersion, GSvoid *vpInfo, GSint iSize, GSuint uiMaxPlayer,
|
|
GSuint uiNbrPlayer, GSuint uiMaxVisitor, GSuint uiNbrVisitor,
|
|
GSchar *szIPAddress, GSchar *szAltIPAddress, GSint iEventID);
|
|
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_LobbyInfo
|
|
/*!
|
|
\brief Receive a message about updated room infomations.
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the
|
|
lobby server updating lobby information.
|
|
\par Related Function:
|
|
LoginSend_CreateLobby()
|
|
|
|
\param sGroupType The type of lobby.
|
|
\param szGroupName The name of the lobby.
|
|
\param iGroupID The id of the lobby.
|
|
\param iLobbySrvID The id of the server on which the specified lobby is
|
|
located
|
|
\param iParentID The id of the parent group.
|
|
\param iConfig The lobby configuration flag.
|
|
\param szMaster The name of the master of the lobby.
|
|
\param szAllowedGames The games allowed in this lobby and in the child groups.
|
|
\param szGames The games that can be played in the lobby.
|
|
\param vpInfo A pointer to the game data.
|
|
\param iSize The size of the game data structure.
|
|
\param uiMaxMember The maximum number of members allowed in that lobby.
|
|
\param uiNbrMember The number of member currently in that lobby.
|
|
\param iEventID The event id for that lobby and its childs groups
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_LobbyInfo)(GSshort siGroupType,
|
|
GSchar *szGroupName, GSint iGroupID, GSint iLobbySrvID, GSint iParentID,
|
|
GSint iConfig, GSshort siGroupLevel, GSchar *szMaster,
|
|
GSchar *szAllowedGames, GSchar *szGames, GSvoid *vpInfo, GSint iSize,
|
|
GSuint uiMaxMember, GSuint uiNbrMember, GSint iEventID);
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GroupInfoGet
|
|
/*!
|
|
\brief Received when a call to LobbySend_GroupInfoGet fails
|
|
\par Description:
|
|
This callback will be called when the client tried to get the group info
|
|
on a group that doesn't exist.
|
|
\par Related Function:
|
|
LobbySend_GroupInfoGet()
|
|
|
|
\param ubType Always GSFAIL
|
|
\param iLobbyID The id of the server on which the specified group is located
|
|
\param iRoomID The id of the Grou
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GroupInfoGet)(GSubyte ubType,
|
|
GSint iLobbyID,GSint iRoomID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GroupRemove
|
|
/*!
|
|
\brief Receive a indication that a group as been removed
|
|
\par Description:
|
|
This callback will be called when the client receive a message indicating
|
|
that a group has been removed
|
|
\par Related Function:
|
|
LoginSend_JoinRoom()
|
|
LoginSend_JoinLobby()
|
|
|
|
\param iGroupID The id of the group.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GroupRemove)(GSint iGroupID,
|
|
GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_JoinRoomReply
|
|
|
|
/*!
|
|
\brief Receive status of the join room request
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after asking to join a room.
|
|
\par Related Function:
|
|
LoginSend_JoinRoom()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The lobby doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOMOREMEMBERS: The room is full.<br>
|
|
ERRORLOBBYSRV_PASSWORDNOTCORRECT: The password is not correct.<br>
|
|
ERRORLOBBYSRV_ALREADYINGROUP: The player is already in the room.<br>
|
|
ERRORLOBBYSRV_MEMBERBANNED: The player is banned from the room.<br>
|
|
ERRORLOBBYSRV_GROUPCLOSE: The room is closed.<br>
|
|
ERRORLOBBYSRV_GAMEINPROGRESS: The game has already started.
|
|
ERRORLOBBYSRV_NOMORESPECTATORS: The maximum number of visitors has been
|
|
reached.<br>
|
|
ERRORLOBBYSRV_NOMOREPLAYERS: The maximum number of players has been
|
|
reached.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szReason The reason the player was given if he was banned of that group
|
|
\param iGroupID The id of the room the client has (or tried to) joined.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_JoinRoomReply)(GSubyte ubType,
|
|
GSint iReason, GSchar *szReason, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_JoinLobbyResult
|
|
|
|
/*!
|
|
\brief Receive status of the join lobby request
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after asking to join a lobby.
|
|
\par Related Function:
|
|
LoginSend_JoinLobby()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The lobby doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOMOREMEMBERS: The lobby is full.<br>
|
|
ERRORLOBBYSRV_PASSWORDNOTCORRECT: The password is not correct.<br>
|
|
ERRORLOBBYSRV_ALREADYINGROUP: The player is already in the lobby.<br>
|
|
ERRORLOBBYSRV_MEMBERBANNED: The player is banned from the lobby.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szReason The reason the player was given if he was banned of that group
|
|
\param iGroupID The id of the lobby the client has (or tried to) joined.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_JoinLobbyReply)(GSubyte ubType,
|
|
GSint iReason, GSchar *szReason, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MemberJoined
|
|
|
|
/*!
|
|
\brief Receive a message informaing of a new member
|
|
\par Description:
|
|
This callback will be called when the client receive a
|
|
message from the lobby server informing of a new member in the group
|
|
|
|
\param szUsername The alias of the player that has joined the group
|
|
\param bVisitor Vistor flag; if the member joined as a visitor, it is true.
|
|
\param piGroupID The List of the group id were the player is.
|
|
( NB the variables bVisitor, usPlayerStatus, bJoin, usPing, vpPlayerData are
|
|
related to the first group id of the list )
|
|
\param usNbGroups The Number of GroupId.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szIPAddress The local ip address detected by the client itself
|
|
\param szAltIPAddress The local ip address detected by the client itself
|
|
\param usPing The ping of the player, 0xFFFF is the value returned in case
|
|
of error or if the ping is not available.
|
|
\param vpPlayerData Pointer to the player specific data buffer.
|
|
\param iPlayerDataSize Size of the player specific data buffer.
|
|
\param bJoin This flag tells the client if the player has just joined the group
|
|
(TRUE) or if he was already member of the group when the client joined
|
|
(FALSE)
|
|
\param usPlayerStatus The status of the player as describe in LobbyDefine.h
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MemberJoined)(GSchar* szUsername,
|
|
GSbool bVisitor, GSint* piGroupID, GSushort usNbGroups, GSint iLobbySrvID,
|
|
GSchar *szIPAddress, GSchar *szAltIPAddress, GSushort usPing,
|
|
GSvoid *vpPlayerData, GSint iPlayerDataSize, GSbool bJoin,
|
|
GSushort usPlayerStatus );
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MemberLeave
|
|
|
|
/*!
|
|
\brief Receive a message informaing member leaving a group
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the lobby
|
|
server informing that a member has left the group
|
|
|
|
\param szUsername The alias of the player that has left the group
|
|
\param iGroupID The id of the group the member has left
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MemberLeave)(GSchar *szUsername,
|
|
GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_StartMatchReply
|
|
|
|
/*!
|
|
\brief Receive status of the start match request
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the start match message
|
|
\par Related Function:
|
|
LoginSend_StartMatch()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master of the room.<br>
|
|
ERRORLOBBYSRV_GAMENOTINITIATED: The game has not started.<br>
|
|
ERRORLOBBYSRV_MATCHNOTFINISHED: The match has already been started.<br>
|
|
ERRORLOBBYSRV_MATCHSCORESSUBMISSIONEVENTFAIL: The match could not be
|
|
created.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the concerned group
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_StartMatchReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MasterChanged
|
|
|
|
/*!
|
|
\brief Receive a member join message
|
|
\par Description:
|
|
This callback will be called when the client receive a message
|
|
from the lobby server indicating that a new master has been
|
|
nominated in the specified group.
|
|
|
|
\par Related Function:
|
|
LoginSend_MasterNew()
|
|
|
|
\param iGroupID The id of the group where the new master is.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The alias of the new master.
|
|
\param szIPAddress The IP address of the host
|
|
\param szAltIPAddress The alternate ip address of the new master, this will
|
|
often be the internal network address of the player. If one can't connect
|
|
to the first ip address, this on should be used.
|
|
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MasterChanged)(GSint iGroupID,
|
|
GSint iLobbySrvID, GSchar *szUsername, GSchar *szIPAddress,
|
|
GSchar *szAltIPAddress);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MasterNewReply
|
|
|
|
/*!
|
|
\brief Receive a member join message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the MasterNew message
|
|
\par Related Function:
|
|
LoginSend_MasterNew()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master of the room.<br>
|
|
ERRORLOBBYSRV_MEMBERNOTFOUND: The new master isn't in the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szUsername The alias of the player that is now master of the
|
|
specified group
|
|
\param iGroupID The id of the concerned group
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MasterNewReply)(GSubyte ubType,
|
|
GSint iReason, GSchar *szUsername, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MatchFinishReply
|
|
|
|
/*!
|
|
\brief Receive a member join message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the MatchFinish message
|
|
\par Related Function:
|
|
LoginSend_MatchFinish()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The group in which the match took place
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MatchFinishReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerKickReply
|
|
|
|
/*!
|
|
\brief Receive a PlayerKick message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the PlayerKick message
|
|
\par Related Function:
|
|
LoginSend_PlayerKick()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master.<br>
|
|
ERRORLOBBYSRV_MEMBERNOTFOUND: The kicked player isn't in the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szUsername Alias of the kicked player
|
|
\param iGroupID The id of the group the player has been kicked of
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerKickReply)(GSubyte ubType,
|
|
GSint iReason, GSchar *szUsername, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_KickOut
|
|
|
|
/*!
|
|
\brief Receive a KickOut message
|
|
\par Description:
|
|
This callback will be called when the client receive a message from
|
|
the lobby server telling him that he as been kicked out of a group.
|
|
\par Related Function:
|
|
LoginSend_PlayerKick()
|
|
|
|
\param iGroupID The id of the group the player was kicked out from.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The reason given by the group master for kicking the player.
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_KickOut)(GSint iGroupID,
|
|
GSint iLobbySrvID, GSchar *szReason);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_ParentGroupIDReply
|
|
|
|
/*!
|
|
\brief Receive a ParentGroupID message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the ParentGroupID message.
|
|
|
|
\par Related Function:
|
|
LoginSend_GetParentGroupID()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group that was queried
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param iParentGroupID The id of the parent group.
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_ParentGroupIDReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbySrvID, GSint iParentGroupID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GetAlternateGroupInfoReply
|
|
|
|
/*!
|
|
\brief Receive a ParentGroupID message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending the ParentGroupID message.
|
|
\par Related Function:
|
|
LoginSend_GetParentGroupID()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group that was queried
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param pcAltGroupInfo Pointer to the alternate group info buffer.
|
|
\param iAltGroupInfoSize Size of the alternate group info buffer.
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GetAlternateGroupInfoReply)(
|
|
GSubyte ubType, GSint iReason, const GSvoid* pcAltGroupInfo,
|
|
GSint iAltGroupInfoSize, GSint iGroupID, GSint iLobbyServerID );
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GroupLeaveReply
|
|
|
|
/*!
|
|
\brief Receive a GroupLeave message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending a request to leave a group.
|
|
\par Related Function:
|
|
LoginSend_LeaveGroup()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The Group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTINGROUP: The player is not in the group.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group the player left
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GroupLeaveReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GroupConfigUpdate
|
|
|
|
/*!
|
|
\brief Receive a GroupConfigUpdate message
|
|
\par Description:
|
|
This callback will be called when the client receive a message from
|
|
the lobby server telling him that a group of which he is a member has
|
|
been through configuration changes.
|
|
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param iFlags The new configuration flags for the specified group
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GroupConfigUpdate)(GSint iGroupID,
|
|
GSint iLobbySrvID, GSint iFlags);
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MatchStarted
|
|
|
|
/*!
|
|
\brief Receive a MatchStarted message
|
|
\par Description:
|
|
This is sent after the lobby server receive a Match Start message from the
|
|
master or the game server. The Lobby Server tells eveyones in the Group than
|
|
the Match has sarted and gives the Match Id used for the score submition.
|
|
|
|
|
|
\param iGroupID The id of the group in which a game as started
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param uiMatchID The unique id for the started match ( used for the score
|
|
submission )
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MatchStarted)(GSint iGroupID,
|
|
GSint iLobbyServerID, GSuint uiMatchID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_UpdateRoomConfigReply
|
|
|
|
/*!
|
|
\brief Receive a GroupConfigUpdateResult message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending a request to change group config flags.
|
|
\par Related Function:
|
|
LoginSend_UpdateGroupConfig()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player isn't the master of the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_UpdateRoomConfigReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_SubmitMatchResultReply
|
|
|
|
/*!
|
|
\brief Receive a SubmitMatchResult message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after sending a request to submit the score results.
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_MATCHNOTEXIST: The match doesn't exist.<br>
|
|
ERRORLOBBYSRV_MATCHALREADYFINISHEDFORYOU: The match was already finished.<br>
|
|
ERRORLOBBYSRV_MATCHSCORESSUBMISSIONALREDYSENT: The player has already submited
|
|
their scores.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iMatchID The unique match id that was used to submit the scores.
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_SubmitMatchResultReply)(GSubyte ubType,
|
|
GSint iReason, GSint iMatchID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_UpdatePing
|
|
|
|
/*!
|
|
\brief Receive a UpdatePing message
|
|
\par Description:
|
|
This callback will be called when the client receive a message from the lobby
|
|
server about a new player ping. This tell the client to refresh the ping value
|
|
(ping between client and the host of the game server) of the specific player.
|
|
|
|
\param iGroupID The id of the group which has been updated with result
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The alias of the concerned player
|
|
\param usPing The new ping of the player
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_UpdatePing)(GSint iGroupID,
|
|
GSint iLobbyServerID, GSchar *szUsername, GSushort usPing);
|
|
|
|
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_StartGame
|
|
|
|
/*!
|
|
\brief Receive a StartGame message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a Start Game message
|
|
\par Related Function:
|
|
LoginSend_StartGame()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master of the room.<br>
|
|
ERRORLOBBYSRV_BEGINALREADYDONE: The game has already been started.<br>
|
|
ERRORLOBBYSRV_GAMENOTFINISHED: The game has not finished.<br>
|
|
ERRORLOBBYSRV_MINPLAYERSNOTREACH: The minimum number of players hasn't been
|
|
reached.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_StartGameReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GameReadyReply
|
|
|
|
/*!
|
|
\brief Receive a GameReady message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a GameReady message
|
|
\par Related Function:
|
|
LoginSend_StartGame()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_GAMENOTINITIATED: The game has not been started.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player is not the master.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GameReadyReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_GameStarted
|
|
|
|
/*!
|
|
\brief Receive a GameStarted message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a GameReady message
|
|
\par Related Function:
|
|
LoginSend_StartGame()
|
|
|
|
\param iGroupID The id of the group in wich the game has started.
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param vpGameData The id of the group in wich the game has started.
|
|
\param iSize The id of the server on which the specified group is located
|
|
\param szIPAddress The ip address of the host.
|
|
\param szAltIPAddress The alternate ip address of the host if no connection
|
|
is successful on the first that one should be used.
|
|
\param usPort The port to connect to on the host.
|
|
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_GameStarted)(GSint iGroupID,
|
|
GSint iLobbyServerID, GSvoid *vpGameData, GSint iSize, GSchar *szIPAddress,
|
|
GSchar *szAltIPAddress, GSushort usPort);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_NewGameMember
|
|
|
|
/*!
|
|
\brief Receive a NewGameMember message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a GameReady message
|
|
\par Related Function:
|
|
LoginSend_StartGame()
|
|
|
|
\param iGroupID The group id in wich the specified player will play the game
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The alias of the player
|
|
\param bVisitor The visitor flag, true if the player is a visitor, false else.
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_NewGameMember)(GSint iGroupID,
|
|
GSint iLobbyServerID, GSchar *szUsername, GSbool bVisitor);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_UpdateGameInfoReply
|
|
|
|
/*!
|
|
\brief Receive a UpdateGameInfoReply message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a UpdateGameInfoReply message
|
|
\par Related Function:
|
|
LoginSend_UpdateGameInfo()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTINGROUP: The player isn't in the room.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player isn't the master of the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_UpdateGameInfoReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerBanReply
|
|
|
|
/*!
|
|
\brief Receive a PlayerBanReply message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a PlayerBan message
|
|
\par Related Function:
|
|
LoginSend_PlayerBan()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player isn't the master of the room.<br>
|
|
ERRORLOBBYSRV_MEMBERNOTFOUND: The banned player isn't in the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The alias of the player that was banned
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerBanReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID, GSchar *szUsername);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerUnBanReply
|
|
|
|
/*!
|
|
\brief Receive a PlayerUnBanReply message
|
|
\par Description:
|
|
This callback will be called when the client receive a response from the
|
|
lobby server after a PlayerUnBan message
|
|
\par Related Function:
|
|
LoginSend_PlayerUnBan()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
ERRORLOBBYSRV_NOTMASTER: The player isn't the master of the room.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param iGroupID The id of the group which has been updated
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
\param szUsername The alias of the player that was un-banned
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerUnBanReply)(GSubyte ubType,
|
|
GSint iReason, GSint iGroupID, GSint iLobbyServerID, GSchar *szUsername);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerBanList
|
|
|
|
/*!
|
|
\brief Receive a PlayerUnBanReply message
|
|
\par Description:
|
|
This callback will be called for each player that was banned for a group,
|
|
it is the response from the lobby server after having called
|
|
LobbySendPlayerBanList()
|
|
\par Related Function:
|
|
LobbySend_PlayerBanList()
|
|
|
|
\par Errors:
|
|
ERRORLOBBYSRV_GROUPNOTEXIST: The group doesn't exist.<br>
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szUsername The alias of the player that was banned
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerBanList)(GSint iGroupID,
|
|
GSint iLobbyServerID, GSchar *szUsername);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerBanned
|
|
|
|
/*!
|
|
\brief Receive a PlayerBan message
|
|
\par Description:
|
|
This callback will be called when a player gets banned from a group.
|
|
\par Related Function:
|
|
LobbySend_PlayerBan()
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
\param szReason The reason the player was banned.
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerBanned)(GSint iGroupID,
|
|
GSint iLobbySrvID, GSchar *szReason);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_MatchReady
|
|
/*!
|
|
\brief Receive a MatchReady message
|
|
\par Description:
|
|
|
|
|
|
\param iGroupID The id of the group where the match takes place
|
|
\param iLobbySrvID The id of the server on which the specified group is located
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_MatchReady)(GSint iGroupID,
|
|
GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_InfoRefresh
|
|
/*!
|
|
\brief Receive a InfoRefresh message telling that it would be good to refresh
|
|
all group and player related information.
|
|
\par Description:
|
|
|
|
\param iLobbySrvID The id of the lobby server from wich we received the message
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_InfoRefresh)(GSint iLobbySrvID);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_SetPlayerInfoReply
|
|
/*!
|
|
\brief Receive a reply after having sent a request to change player information
|
|
\par Description:
|
|
|
|
\param ubType The status of the message received back (GSSUCCESS or GSFAIL)
|
|
\param iReason The reason of failure if ubType is GSFAIL
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_SetPlayerInfoReply)(GSubyte ubType,
|
|
GSint iReason);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerInfoUpdate
|
|
|
|
/*!
|
|
\brief Receive a reply after having sent a request to change player information
|
|
\par Description:
|
|
|
|
\param szUsername The alias of the player who's personal data has changed
|
|
\param vpPlayerData Pointer to the player data buffer
|
|
\param iPlayerDataSize The data buffer size
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerInfoUpdate)(GSchar *szUsername,
|
|
GSvoid *vpPlayerData, GSint iPlayerDataSize);
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerInfoUpdate
|
|
|
|
/*!
|
|
\brief Receive an update of the player's status
|
|
\par Description:
|
|
Receive an update of the player's status
|
|
|
|
\param szUsername The alias of the player who's personal status has changed
|
|
\param usPlayerStatus The Player's status
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerStatusUpdate)( GSchar* szUsername,
|
|
GSushort usPlayerStatus );
|
|
|
|
//============================================================================
|
|
// Callback CBLobbyRcv_PlayerGroupList
|
|
|
|
/*!
|
|
\brief Receive a message telling that a player is member of a specific group
|
|
\par Description:
|
|
Receive a message telling that a player is member of a specific group
|
|
\param szUsername The alias of the player
|
|
\param iGroupID The group id
|
|
\param iLobbySrvID The id of the lobby server the group is hosted
|
|
|
|
*/
|
|
//============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_PlayerGroupList)(GSchar *szUsername,
|
|
GSint iGroupID, GSint iLobbySrvID);
|
|
|
|
//===============================================================================
|
|
// Callback CBLobbyRcv_FinalMatchResults
|
|
|
|
/*!
|
|
\brief Official results of a match
|
|
\par Description:
|
|
This callback is called once the submitted match results have been
|
|
submitted, validated, and stored in the ladder database. It contains
|
|
the official results of the match or the error that occured during
|
|
the submission process.
|
|
|
|
\param uiMatchId The match to who the results apply
|
|
\param ubType The type of notification - GSSUCCESS or GSFAIL
|
|
\param iReason The reason of a GSFAIL. The possible values are:
|
|
<UL>
|
|
<LI>ERRSS_BADFORMAT
|
|
<BR>Internal error. The messages between the parts of
|
|
the service where corrupted.
|
|
<LI>ERRSS_DBFAILURE
|
|
<BR>An error occured on the DB. The ubi.com server log
|
|
will contain the exact nature of the error.
|
|
<LI>ERRSS_SUBMISSIONFAILED
|
|
<BR>The results could not be submitted successfully.
|
|
The exact nature of the error will be logged in the
|
|
database along with the submitted values
|
|
<LI>ERRSS_VALIDATIONFAILED
|
|
<BR>The results could not be validated. The exact nature
|
|
of the error will be logged in the database along with
|
|
the submitted values.
|
|
</UL>
|
|
\param pResults An array of data rows containing the results values.
|
|
You do not have ownership of this array. The memory will
|
|
be freed when the callback function returns.
|
|
\param uiNumResult The number of rows in the result array
|
|
*/
|
|
//===============================================================================
|
|
typedef GSvoid (__stdcall *CBLobbyRcv_FinalMatchResults)(GSuint uiMatchId,
|
|
GSubyte ubType, GSint iReason, const LADDER_ROW *pResults,
|
|
GSuint uiNumResult);
|
|
|
|
/*! @} end of group_LobbyCB */
|
|
|
|
#endif //_GSLOBBYCB_H_
|