#include <stdio.h>
#include <signal.h>
-#define version_string "0.5.810"
+#define version_string "0.7.819"
#define ExtFunc /* Marks functions that need prototypes */
#define EM_key 000002
#define EM_net 000004
#define EM_robot 000010
+#define EM_connect 000020
#define EM_any 000777
typedef enum _GameType { GT_onePlayer, GT_classicTwo, GT_len } GameType;
typedef enum _BlockTypeA {
- BT_none, BT_white, BT_blue, BT_magenta, BT_cyan, BT_yellow, BT_green,
- BT_red, BT_wall, BT_len
+ BT_shadow, BT_none,
+ BT_green, BT_cyan, BT_blue, BT_magenta, BT_red, BT_yellow, BT_white,
+ 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 enum _MyEventType {
- E_none, E_alarm, E_key, E_net, E_lostConn, E_robot, E_lostRobot
+ E_none, E_alarm, E_key, E_connect, E_net, E_lostConn, E_robot, E_lostRobot
} MyEventType;
typedef enum _NetPacketType {
- NP_endConn, NP_byeBye,
- NP_error, NP_hello, NP_gamedata, NP_newPlayer, NP_goAhead,
- NP_pause, NP_argghhh, NP_giveJunk, NP_newPiece, NP_down, NP_left, NP_right,
- NP_rotright, NP_rotleft, NP_drop, NP_clear, NP_insertJunk
+ NP_endConn, //client/server quits
+ NP_byeBye, //unused atm
+ NP_error, //handshake error
+ NP_hello, //check versions
+ NP_gamedata, //game options
+
+ NP_start, //game ok to start
+ NP_pause, //player (un)pauses
+ NP_stop, //game ended
+ NP_newPlayer, //add new player
+ NP_argghhh, //player died
+
+ NP_newPiece, //new piece info
+ NP_rotright, //rotate piece clockwise
+ NP_rotleft, //rotate piece counterclockwise
+ NP_left, //move piece left
+ NP_right, //move piece right
+ NP_down, //move piece one down
+ NP_drop, //drop piece to bottom
+ NP_clear, //line cleared
+ NP_insertJunk, //player added junk
+
+ NP_giveJunk //player has to add junk
} NetPacketType;
typedef signed char BlockType;
char buf[512];
int bufSize, bufGoal;
} EventGenRec;
-EXT EventGenRec netGen[MAX_SCREENS];
MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event);
#define SCF_fairRobot 000002
#define SCF_paused 000004
-EXT int totalPlayers;
-
typedef struct _Player {
int alive;
char name[16];
int drops, lines, adds;
} score;
char host[256]; //last-1
- int spy; //last
+ int spy,small; //last
} Player;
EXT Player Players[MAX_SCREENS];
EXT short me;
+EXT short maxPlayer;
+EXT int spied; //in player.flags
#define DEFAULT_INTERVAL 1000000 /* Step-down interval in microseconds */
#define SPEEDINC 1.2
#define SPEEDMINIMUM 40000
typedef struct __Game {
- long seed; //1st
- int initspeed; //2nd
+ int maxplayers; //1
+ int started; //2
+ int continuous; //3
+ long seed; //4
+ int initspeed; //5
int speed;
int standout, color, ascii;
} _Game;