/*
* Netris -- A free networked version of T*tris
- * Copyright (C) 1994,1995,1996 Mark H. Weaver <mhw@netris.org>
+ * Copyright (C) 1994-1996,1999 Mark H. Weaver <mhw@netris.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * $Id: netris.h,v 1.27 1996/02/09 08:22:14 mhw Exp $
+ * $Id: netris.h,v 1.28 1999/05/16 06:56:29 mhw Exp $
*/
#ifndef NETRIS_H
#define DEFAULT_PORT 9284 /* Very arbitrary */
-#define DEFAULT_KEYS "jkl mspf^l"
+#define DEFAULT_KEYS "jkl mspf^ln"
/* Protocol versions */
#define MAJOR_VERSION 1
#define EM_any 000777
typedef enum _GameType { GT_onePlayer, GT_classicTwo, GT_len } GameType;
-typedef enum _BlockTypeA { BT_none, BT_piece1, BT_wall, BT_len } BlockTypeA;
+typedef enum _BlockTypeA { BT_none, BT_white, BT_blue, BT_magenta,
+ BT_cyan, BT_yellow, BT_green, BT_red,
+ BT_wall, BT_len } BlockTypeA;
typedef enum _Dir { D_down, D_right, D_up, D_left } Dir;
typedef enum _Cmd { C_end, C_forw, C_back, C_left, C_right, C_plot } Cmd;
typedef enum _FDType { FT_read, FT_write, FT_except, FT_len } FDType;
typedef int (*ShapeDrawFunc)(int scr, int y, int x,
BlockType type, void *data);
+enum States {
+ STATE_STARTING,
+ STATE_PLAYING,
+ STATE_WAIT_CONNECTION,
+ STATE_WAIT_KEYPRESS
+};
+
EXT GameType game;
EXT int boardHeight[MAX_SCREENS];
EXT int boardVisible[MAX_SCREENS], boardWidth[MAX_SCREENS];
EXT Shape *curShape[MAX_SCREENS];
EXT int curY[MAX_SCREENS], curX[MAX_SCREENS];
EXT char opponentName[16], opponentHost[256];
-EXT int standoutEnable;
+EXT int standoutEnable, colorEnable;
EXT int robotEnable, robotVersion, fairRobot;
EXT int protocolVersion;
EXT int myFlags, opponentFlags;
+EXT int won, lost;
+EXT enum States gameState;
+
EXT char scratch[1024];
extern ShapeOption stdOptions[];