86 lines
2.5 KiB
C++
86 lines
2.5 KiB
C++
/*
|
|
* Original work: Copyright (c) 2014, Oculus VR, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* RakNet License.txt file in the licenses directory of this source tree. An additional grant
|
|
* of patent rights can be found in the RakNet Patents.txt file in the same directory.
|
|
*
|
|
*
|
|
* Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)
|
|
*
|
|
* This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
|
|
* license found in the license.txt file in the root directory of this source tree.
|
|
*/
|
|
|
|
#ifndef __LOBBY_2_PRESENCE_H
|
|
#define __LOBBY_2_PRESENCE_H
|
|
|
|
#include "slikenet/string.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace SLNet
|
|
{
|
|
class BitStream;
|
|
|
|
/// Lobby2Presence is information about your online status. It is only held in memory, so is lost when you go offline.
|
|
/// Set by calling Client_SetPresence and retrieve with Client_GetPresence
|
|
struct Lobby2Presence
|
|
{
|
|
Lobby2Presence();
|
|
Lobby2Presence(const Lobby2Presence& input);
|
|
Lobby2Presence& operator = ( const Lobby2Presence& input );
|
|
~Lobby2Presence();
|
|
void Serialize(SLNet::BitStream *bitStream, bool writeToBitstream);
|
|
|
|
enum Status
|
|
{
|
|
/// Set by the constructor, meaning it was never set. This is the default if a user is online, but SetPresence() was never called.
|
|
UNDEFINED,
|
|
/// Returned by Client_GetPresence() if you query for a user that is not online, whether or not SetPresence was ever called().
|
|
NOT_ONLINE,
|
|
/// Set by the user (you)
|
|
AWAY,
|
|
/// Set by the user (you)
|
|
DO_NOT_DISTURB,
|
|
/// Set by the user (you)
|
|
MINIMIZED,
|
|
/// Set by the user (you)
|
|
TYPING,
|
|
/// Set by the user (you)
|
|
VIEWING_PROFILE,
|
|
/// Set by the user (you)
|
|
EDITING_PROFILE,
|
|
/// Set by the user (you)
|
|
IN_LOBBY,
|
|
/// Set by the user (you)
|
|
IN_ROOM,
|
|
/// Set by the user (you)
|
|
IN_GAME
|
|
} status;
|
|
|
|
/// Visibility flag. This is not enforced by the server, so if you want a user's presence to be not visible, just don't display it on the client
|
|
bool isVisible;
|
|
|
|
/// Although game name is also present in the titleNameOrID member of Client_Login, this is the visible name returned by presence queries
|
|
/// That is because Client_Login::titleNameOrID member is optional, for example for lobbies that support multiple titles.
|
|
/// Set by the user (you) or leave blank if desired.
|
|
RakString titleNameOrID;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// Anything you want
|
|
RakString statusString;
|
|
};
|
|
|
|
|
|
}
|
|
|
|
#endif
|