From df7bd25a1c7807b4a143b7612d5ef36caa8dadff Mon Sep 17 00:00:00 2001 From: ammorais Date: Thu, 9 Jul 2009 21:31:23 +0000 Subject: [PATCH] more of the same git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/ammorais_branch@1345 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- libretroshare/src/_rsiface/rsgame.h | 113 +++++++++++++++++++++++++ libretroshare/src/_rsiface/rsiface.pri | 3 +- 2 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 libretroshare/src/_rsiface/rsgame.h diff --git a/libretroshare/src/_rsiface/rsgame.h b/libretroshare/src/_rsiface/rsgame.h new file mode 100644 index 000000000..59198806d --- /dev/null +++ b/libretroshare/src/_rsiface/rsgame.h @@ -0,0 +1,113 @@ +#ifndef RSGAME_H +#define RSGAME_H + +/* + * libretroshare/src/rsiface: rsgame.h + * + * RetroShare C++ Interface. + * + * Copyright 2007-2008 by Robert Fernie. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License Version 2 as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA. + * + * Please report all bugs and problems to "retroshare@lunamutt.com". + * + */ + + +#include "rstypes.h" + + +class RsGameLauncher; + +/* declare single RsIface for everyone to use! */ + +extern RsGameLauncher *rsGameLauncher; + +#include +#include +#include + +class RsGameInfo +{ + public: + + std::string gameId; + std::string serverId; + + std::string gameType; + std::wstring gameName; + std::string serverName; + std::string status; + uint16_t numPlayers; + +}; + +class RsGamePeer +{ + public: + std::string id; + bool invite; + bool interested; + bool play; +}; + +class RsGameDetail +{ + public: + std::string gameId; + std::string gameType; + std::wstring gameName; + + bool areServer; /* are we the server? */ + std::string serverId; /* if not, who is? */ + std::string serverName; + + std::string status; + + uint16_t numPlayers; + std::map gamers; + +}; + +class RsGameLauncher +{ + public: + +/* server commands */ +virtual std::string createGame(uint32_t gameType, std::wstring name) = 0; +virtual bool deleteGame(std::string gameId) = 0; +virtual bool inviteGame(std::string gameId) = 0; +virtual bool playGame(std::string gameId) = 0; +//virtual bool quitGame(std::string gameId) = 0; + +virtual bool invitePeer(std::string gameId, std::string peerId) = 0; +virtual bool uninvitePeer(std::string gameId, std::string peerId) = 0; +virtual bool confirmPeer(std::string gameId, std::string peerId, + int16_t pos = -1) = 0; +virtual bool unconfirmPeer(std::string gameId, std::string peerId) = 0; + +/* client commands */ +virtual bool interestedPeer(std::string gameId) = 0; +virtual bool uninterestedPeer(std::string gameId) = 0; + +/* get details */ +virtual bool getGameList(std::list &gameList) = 0; +virtual bool getGameDetail(std::string gameId, RsGameDetail &detail) = 0; + +}; + + +#endif diff --git a/libretroshare/src/_rsiface/rsiface.pri b/libretroshare/src/_rsiface/rsiface.pri index fd8391b32..f874fd75e 100644 --- a/libretroshare/src/_rsiface/rsiface.pri +++ b/libretroshare/src/_rsiface/rsiface.pri @@ -15,4 +15,5 @@ HEADERS = $$PWP/rsinit.h \ $$PWP/rsifacereal.h \ $$PWP/rstypes.h \ $$PWP/rsfiles.h \ - $$PWP/rsexpr.h + $$PWP/rsexpr.h \ + $$PWP/rsgame.h