static EventGenRec netGen[MAX_SCREENS] = {
{ NULL, 0, FT_read, -1, NetGenFunc, EM_net, 0, "\0", 0, HEADER_SIZE }
};
static EventGenRec netGen[MAX_SCREENS] = {
{ NULL, 0, FT_read, -1, NetGenFunc, EM_net, 0, "\0", 0, HEADER_SIZE }
};
-void SendPacketTo(short playa, short uid, NetPacketType type, int size, void *data)
+static void SendPacketTo(short player, short uid, NetPacketType type, int size, void *data)
- fprintf(stderr, ": send %d from %d to %d\n", type, uid, playa);
+ fprintf(stderr, MSG_SERVER_DBG_SEND "\n", type, uid, player);
- if (netGen[playa].fd >= 0) {
- if (Players[playa].alive >= 0) {
- SendPacketTo(playa, 0, NP_endConn, 0, NULL);
+ if (netGen[player].fd >= 0) {
+ if (Players[player].alive >= 0) {
+ SendPacketTo(player, 0, NP_endConn, 0, NULL);
result = MyRead(gen->fd, gen->buf + gen->bufSize,
gen->bufGoal - gen->bufSize);
if (result < 0) {
result = MyRead(gen->fd, gen->buf + gen->bufSize,
gen->bufGoal - gen->bufSize);
if (result < 0) {
event->u.net.size = size - HEADER_SIZE;
event->u.net.data = gen->buf + HEADER_SIZE;
if (type == NP_endConn) {
event->u.net.size = size - HEADER_SIZE;
event->u.net.data = gen->buf + HEADER_SIZE;
if (type == NP_endConn) {
val2.l_onoff = 1;
val2.l_linger = 0;
setsockopt(netGen[new].fd, SOL_SOCKET, SO_LINGER,(void *)&val2,
val2.l_onoff = 1;
val2.l_linger = 0;
setsockopt(netGen[new].fd, SOL_SOCKET, SO_LINGER,(void *)&val2,
- char teams[10][7] = {
- "", "Green", "Cyan", "Blue", "Purple",
- "Red", "Grey", "White", "*Orange"
- };
netGen[event.u.net.sender].fd, event.u.net.type);
switch(event.u.net.type) {
case NP_hello:
netGen[event.u.net.sender].fd, event.u.net.type);
switch(event.u.net.type) {
case NP_hello:
snprintf(data, sizeof(data),
"Version mismatch: received %d.%d",
major, protocolVersion);
snprintf(data, sizeof(data),
"Version mismatch: received %d.%d",
major, protocolVersion);
event.u.net.sender, data);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
SCloseNet(event.u.net.sender);
} //version mismatch
event.u.net.sender, data);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
SCloseNet(event.u.net.sender);
} //version mismatch
if (!Game.continuous && Game.started >= 2) {
char data[40];
strcpy(data, "Can't join: Game has already started");
if (!Game.continuous && Game.started >= 2) {
char data[40];
strcpy(data, "Can't join: Game has already started");
- fprintf(stderr, "- Can't join player #%d in "
- "non-continuous game\n", event.u.net.sender);
+ fprintf(stderr, MSG_SERVER_PLAYER_JOIN_ESTARTED,
+ event.u.net.sender);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
// SCloseNet(event.u.net.sender, 0);
SendPacketTo(event.u.net.sender, 0, NP_error,
strlen(data)+1, data);
// SCloseNet(event.u.net.sender, 0);
for (i = 1; i < MAX_SCREENS; i++)
if (netGen[i].fd >= 0 && i != event.u.net.sender) {
SendPacketTo(event.u.net.sender, i, NP_newPlayer,
for (i = 1; i < MAX_SCREENS; i++)
if (netGen[i].fd >= 0 && i != event.u.net.sender) {
SendPacketTo(event.u.net.sender, i, NP_newPlayer,
SendPacketTo(event.u.net.sender, i, NP_newPiece,
sizeof(Players[i].curShape), &Players[i].curShape);
SendPacketTo(i, event.u.net.sender, NP_newPlayer,
SendPacketTo(event.u.net.sender, i, NP_newPiece,
sizeof(Players[i].curShape), &Players[i].curShape);
SendPacketTo(i, event.u.net.sender, NP_newPlayer,
event.u.net.sender,
Players[event.u.net.sender].name,
Players[event.u.net.sender].host,
event.u.net.sender,
Players[event.u.net.sender].name,
Players[event.u.net.sender].host,
if (++playersReady >= minplayers) {
if (Game.started > 1)
SendPacketTo(event.u.net.sender, 0,
if (++playersReady >= minplayers) {
if (Game.started > 1)
SendPacketTo(event.u.net.sender, 0,
paused = Game.started < 1;
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
paused = Game.started < 1;
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
- paused |= Players[i].flags & SCF_paused;
- fprintf(stderr, "* Player #%d (un)paused (pause=%d)\n",
+ paused |= (Players[i].flags & SCF_paused) != 0;
+ fprintf(stderr, MSG_SERVER_PLAYER_PAUSE "\n",
if (Game.seed) Game.seed++;
if (Game.started > 1) for (i = 1; i < MAX_SCREENS; i++) {
if (Players[i].alive >= 0) {
if (Game.seed) Game.seed++;
if (Game.started > 1) for (i = 1; i < MAX_SCREENS; i++) {
if (Players[i].alive >= 0) {
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
SendPacketTo(i, 0, NP_start, 0, NULL);
for (i = 1; i < MAX_SCREENS; i++)
if (Players[i].alive > 0)
SendPacketTo(i, 0, NP_start, 0, NULL);
{
siglongjmp(close_env, 1);
}
int main(int argc, char **argv)
{
{
siglongjmp(close_env, 1);
}
int main(int argc, char **argv)
{