2005-04-03 10:07:40 -06:00
|
|
|
// _________ __ __
|
|
|
|
// / _____// |_____________ _/ |______ ____ __ __ ______
|
|
|
|
// \_____ \\ __\_ __ \__ \\ __\__ \ / ___\| | \/ ___/
|
|
|
|
// / \| | | | \// __ \| | / __ \_/ /_/ > | /\___ |
|
|
|
|
// /_______ /|__| |__| (____ /__| (____ /\___ /|____//____ >
|
|
|
|
// \/ \/ \//_____/ \/
|
|
|
|
// ______________________ ______________________
|
|
|
|
// T H E W A R B E G I N S
|
|
|
|
// Stratagus - A free fantasy real time strategy game engine
|
|
|
|
//
|
2005-09-17 19:51:04 -06:00
|
|
|
/**@name games.h - Games header. */
|
2005-04-03 10:07:40 -06:00
|
|
|
//
|
2005-04-17 12:39:41 -06:00
|
|
|
// (c) Copyright 2005 by Edward Haase and Jimmy Salmon
|
2005-04-03 10:07:40 -06:00
|
|
|
//
|
|
|
|
// This program is free software; you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
// the Free Software Foundation; only version 2 of the License.
|
|
|
|
//
|
|
|
|
// This program 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 General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
// along with this program; if not, write to the Free Software
|
|
|
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
|
|
// 02111-1307, USA.
|
2005-04-03 10:15:33 -06:00
|
|
|
//
|
2005-04-03 10:07:40 -06:00
|
|
|
|
2005-04-17 12:39:41 -06:00
|
|
|
#ifndef __GAMES_H__
|
|
|
|
#define __GAMES_H__
|
2005-04-03 10:07:40 -06:00
|
|
|
|
|
|
|
//@{
|
|
|
|
|
2005-04-17 12:39:41 -06:00
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
-- Defines
|
|
|
|
----------------------------------------------------------------------------*/
|
|
|
|
|
2005-04-26 19:46:20 -06:00
|
|
|
#define MAX_GAME_PASSWORD_LENGTH 16
|
2005-04-17 12:39:41 -06:00
|
|
|
#define MAX_DESCRIPTION_LENGTH 64
|
|
|
|
#define MAX_MAP_LENGTH 64
|
|
|
|
|
2005-04-03 10:07:40 -06:00
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
-- Declarations
|
|
|
|
----------------------------------------------------------------------------*/
|
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
class Session;
|
2005-04-03 10:07:40 -06:00
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
class GameData
|
2005-04-17 12:39:41 -06:00
|
|
|
{
|
2005-09-25 10:32:15 -06:00
|
|
|
public:
|
2005-04-17 12:39:41 -06:00
|
|
|
char IP[16];
|
|
|
|
char Port[6];
|
2005-04-26 19:46:20 -06:00
|
|
|
char Password[MAX_GAME_PASSWORD_LENGTH + 1];
|
2005-04-17 12:39:41 -06:00
|
|
|
char Description[MAX_DESCRIPTION_LENGTH + 1];
|
|
|
|
char Map[MAX_MAP_LENGTH + 1];
|
|
|
|
int OpenSlots;
|
|
|
|
int MaxSlots;
|
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
char *GameName;
|
|
|
|
char *Version;
|
2005-04-17 12:39:41 -06:00
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
Session *Sessions[16];
|
2005-04-17 12:39:41 -06:00
|
|
|
int NumSessions;
|
|
|
|
int ID;
|
|
|
|
int Started;
|
|
|
|
|
2016-11-10 07:20:53 -07:00
|
|
|
unsigned long UDPHost;
|
|
|
|
int UDPPort;
|
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
GameData *Next;
|
|
|
|
GameData *Prev;
|
|
|
|
};
|
2005-04-17 12:39:41 -06:00
|
|
|
|
|
|
|
extern int GameID;
|
|
|
|
|
2005-04-03 10:07:40 -06:00
|
|
|
/*----------------------------------------------------------------------------
|
|
|
|
-- Functions
|
|
|
|
----------------------------------------------------------------------------*/
|
|
|
|
|
2005-09-25 10:32:15 -06:00
|
|
|
extern void CreateGame(Session *session, char *description, char *map,
|
|
|
|
char *players, char *ip, char *port, char *password);
|
|
|
|
extern int CancelGame(Session *session);
|
|
|
|
extern int StartGame(Session *session);
|
2016-11-10 07:20:53 -07:00
|
|
|
extern int JoinGame(Session *session, int id, char *password, unsigned long *host, int *port);
|
2005-09-25 10:32:15 -06:00
|
|
|
extern int PartGame(Session *session);
|
|
|
|
extern void ListGames(Session *session);
|
2016-11-10 07:20:53 -07:00
|
|
|
extern int FillinUDPInfo(unsigned long udphost, int udpport, char* ip, char* port);
|
2005-04-03 10:07:40 -06:00
|
|
|
|
|
|
|
//@}
|
|
|
|
|
2005-04-17 12:39:41 -06:00
|
|
|
#endif // __GAMES_H__
|