unofficial version 0.7: multiplayer improvements
[netris.git] / netris.h
index b04e04036b2d04274fe18871b4d2c97d6e72ea7a..30ce772a3262e6e0a2d5e12bd507a6172b31dbeb 100644 (file)
--- a/netris.h
+++ b/netris.h
 #include <stdio.h>
 #include <signal.h>
 
+#define version_string         "0.5.810"
+
 #define ExtFunc                /* Marks functions that need prototypes */
 
-#ifdef NOEXT
+#ifdef NOEXT   //prevent re-declaration
 # define EXT
-# define IN(a) a
 #else
 # define EXT extern
-# define IN(a)
 #endif
 
-/*#ifndef NULL
-  # define NULL ((void *)0)
-  #endif*/
-
 #ifdef HAS_SIGPROCMASK
 typedef sigset_t MySigSet;
 #else
@@ -71,13 +67,13 @@ typedef long netint4;
 
 #define CONFIG_FILE "netris.conf"
 
-//#define DEFAULT_KEYS "hlkj mspf^l"
-//#define DEFAULT_KEYS "4685 2spf^l"
-#define DEFAULT_KEYS "dcaf b^sp^f^l"
+//#define DEFAULT_KEYS "hlkj mfp^lq"
+//#define DEFAULT_KEYS "4685 2fp^lq"
+#define DEFAULT_KEYS "dcaf b^fp^lq"
 
 #define MAX_BOARD_WIDTH                32
 #define MAX_BOARD_HEIGHT       64
-#define MAX_SCREENS                    5
+#define MAX_SCREENS                    9 //8 players
 
 /* Event masks */
 #define EM_alarm                       000001
@@ -100,7 +96,7 @@ typedef enum _MyEventType {
 typedef enum _NetPacketType {
        NP_endConn, NP_byeBye,
        NP_error, NP_hello, NP_gamedata, NP_newPlayer, NP_goAhead,
-       NP_pause, NP_giveJunk, NP_newPiece, NP_down, NP_left, NP_right,
+       NP_pause, NP_argghhh, NP_giveJunk, NP_newPiece, NP_down, NP_left, NP_right,
        NP_rotright, NP_rotleft, NP_drop, NP_clear, NP_insertJunk
 } NetPacketType;
 
@@ -137,7 +133,7 @@ typedef struct _EventGenRec {
        char buf[512];
        int bufSize, bufGoal;
 } EventGenRec;
-extern EventGenRec netGen[MAX_SCREENS];
+EXT EventGenRec netGen[MAX_SCREENS];
 
 MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event);
 
@@ -160,13 +156,15 @@ typedef int (*ShapeDrawFunc)(int scr, int y, int x,
 /* NP_startConn flags */
 #define SCF_usingRobot         000001
 #define SCF_fairRobot          000002
-#define SCF_setSeed                    000004
+#define SCF_paused                     000004
 
 EXT int totalPlayers;
 
 typedef struct _Player {
+       int alive;
        char name[16];
        int flags;
+       int team;
        int dropmode;
        int boardHeight, boardWidth, boardVisible;
        int curX, curY;
@@ -176,8 +174,8 @@ typedef struct _Player {
                long score;
                int drops, lines, adds;
        } score;
-       char host[256];
-       int spy;
+       char host[256]; //last-1
+       int spy;                //last
 } Player;
 EXT Player Players[MAX_SCREENS];
 EXT short me;
@@ -187,8 +185,9 @@ EXT short me;
 #define SPEEDMINIMUM           40000
 
 typedef struct __Game {
-       long seed;
-       long initspeed, speed;
+       long seed;              //1st
+       int initspeed;  //2nd
+       int speed;
        int standout, color, ascii;
 } _Game;
 EXT _Game Game;
@@ -197,13 +196,12 @@ EXT GameType game;
 EXT int robotEnable, robotVersion, fairRobot;
 EXT int protocolVersion;
 
-EXT int initConn, waitConn;
-EXT char *hostStr, *portStr;
+EXT int initConn;
+EXT short port;
 
 EXT char scratch[1024];
 
 extern ShapeOption stdOptions[];
-extern char *version_string;
 
 #include "proto.h"