- memcpy(data, event.u.net.data, sizeof(data));
- pausedByThem = ntoh2(data[0]);
- paused = pausedByMe || pausedByThem;
- if (robotEnable)
- RobotCmd(1, "Pause %d %d\n", pausedByMe,
- pausedByThem);
- ShowPause(pausedByMe, pausedByThem);
+ if (Players[me].alive <= 0) break;
+ memcpy(data, event.u.net.data, sizeof(data[0]));
+ column = Random(0, Players[me].boardWidth);
+ data[1] = hton2(column);
+ Messagef("\\%d%s sends %d lines",
+ Players[event.u.net.uid].team > 7 ? 7
+ : Players[event.u.net.uid].team,
+ Players[event.u.net.uid].name, ntoh2(data[0]));
+ lastadd = event.u.net.uid;
+ InsertJunk(me, ntoh2(data[0]), column);
+ if (spied)
+ SendPacket(me, NP_insertJunk, sizeof(data),
+ data);
+ break;
+ } //receive junklines
+ case NP_start:
+ {
+ Game.started = 2;
+ paused = 0;
+ Messagef("The game has started");
+ for (i = 1; i < MAX_SCREENS; i++)
+ if (Players[i].alive > 0) ShowPause(i);
+ break;
+ } //start game
+ case NP_stop:
+ {
+ if (Game.started > 1)
+ Messagef("The game has ended");
+ Game.started = 0;
+ memcpy(&Game.seed, event.u.net.data,
+ event.u.net.size);
+ for (i = 1; i < MAX_SCREENS; i++)
+ if (Players[i].alive >= 0) {
+ Players[i].alive = 1;
+ Players[i].flags |= SCF_paused;
+ } //reset players
+ StartGame(); //reset everything
+ ShowTime(); //redraw timer while unpaused
+ checkPaused(); //pause
+ oldPaused = 0; //reset pause
+ changed = 1;
+ goto GameLoop;
+ } //stop game
+ case NP_newPlayer:
+ {
+ if (event.u.net.uid > maxPlayer)
+ maxPlayer = event.u.net.uid;
+ memcpy(&Players[event.u.net.uid],
+ event.u.net.data, event.u.net.size);
+ ClearField(event.u.net.uid);
+ if (Players[event.u.net.uid].team > 7)
+ Messagef("%s joined the game",
+ Players[event.u.net.uid].name);
+ else
+ Messagef("%s joined %s team",
+ Players[event.u.net.uid].name,
+ teams[Players[event.u.net.uid].team]);
+ if (Players[event.u.net.uid].flags & SCF_paused) {
+ checkPaused();
+ if (robotEnable)
+ RobotCmd(1, "Pause %d\n", paused);
+ } //player has paused
+ DrawField(event.u.net.uid);
+// ShowPause(event.u.net.uid);