X-Git-Url: http://git.shiar.net/netris.git/blobdiff_plain/e48b4e02444007e577ddbddd31b5694a473681e5..HEAD:/server.c diff --git a/server.c b/server.c index 3eebe8a..70406a3 100644 --- a/server.c +++ b/server.c @@ -59,7 +59,7 @@ static char verbose = 0; struct sockaddr_in addr; -MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event); +static MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event); static EventGenRec netGen[MAX_SCREENS] = { { NULL, 0, FT_read, -1, NetGenFunc, EM_net, 0, "\0", 0, HEADER_SIZE } }; @@ -79,19 +79,19 @@ static EventGenRec *nextGen = &alarmGen; static sigjmp_buf close_env; -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) { //send to someone netint4 header[3]; - if (netGen[playa].fd >= 0) { + if (netGen[player].fd >= 0) { if (verbose) - fprintf(stderr, MSG_SERVER_DBG_SEND "\n", type, uid, playa); + fprintf(stderr, MSG_SERVER_DBG_SEND "\n", type, uid, player); header[0] = hton4(uid); header[1] = hton4(type); header[2] = hton4(size + HEADER_SIZE); - if (MyWrite(netGen[playa].fd, header, HEADER_SIZE) != HEADER_SIZE) + if (MyWrite(netGen[player].fd, header, HEADER_SIZE) != HEADER_SIZE) die("write (header)"); - if (size > 0 && data && MyWrite(netGen[playa].fd, data, size) != size) + if (size > 0 && data && MyWrite(netGen[player].fd, data, size) != size) die("write"); } } @@ -101,23 +101,23 @@ static MyEventType AlarmGenFunc(EventGenRec *gen, MyEvent *event) return E_alarm; } -void SCloseNet(short playa) +static void SCloseNet(short player) { //kick some connection's ass! MyEvent event; - 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); do {} while (WaitMyEvent(&event, EM_net) != E_lostConn); } //say bye to player - close(netGen[playa].fd); - netGen[playa].fd = -1; + close(netGen[player].fd); + netGen[player].fd = -1; } - if (netGen[playa].next) - RemoveEventGen(&netGen[playa]); + if (netGen[player].next) + RemoveEventGen(&netGen[player]); } -void CloseNets(void) +static void CloseNets(void) { //nou oogjes dicht en snaveltjes toe int i; @@ -127,7 +127,7 @@ void CloseNets(void) fprintf(stderr, MSG_SERVER_CLOSE_ALL_DONE "\n\n"); } -MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event) +static MyEventType NetGenFunc(EventGenRec *gen, MyEvent *event) { //receive int result; short uid, type, size; @@ -204,7 +204,7 @@ static MyEventType ConnGenFunc(EventGenRec *gen, MyEvent *event) return E_connect; } -void CountPlayers(void) +static void CountPlayers(void) { //count number of players/teams int i, j; playercount = 0; @@ -219,17 +219,13 @@ void CountPlayers(void) } //player alive } -int StartServer(void) +static int StartServer(void) { MyEvent event; netint2 currentpiece[MAX_SCREENS]; int playersReady = 0; bool paused = 1; int i; - char teams[10][7] = { - "", "Green", "Cyan", "Blue", "Purple", - "Red", "Grey", "White", "*Orange" - }; do { switch (WaitMyEvent(&event, EM_any)) { @@ -310,6 +306,7 @@ int StartServer(void) int started; //2 int continuous; //3 long seed; //4 + float shapes[7]; int initspeed; //5 } data; @@ -323,17 +320,17 @@ int StartServer(void) 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, - sizeof(_Player), &Players[i]); + sizeof(player_t), &Players[i]); SendPacketTo(event.u.net.sender, i, NP_newPiece, sizeof(Players[i].curShape), &Players[i].curShape); SendPacketTo(i, event.u.net.sender, NP_newPlayer, - sizeof(_Player), &Players[event.u.net.sender]); + sizeof(player_t), &Players[event.u.net.sender]); } //send (to) players fprintf(stderr, MSG_SERVER_PLAYER_JOIN "\n", event.u.net.sender, Players[event.u.net.sender].name, Players[event.u.net.sender].host, - teams[Players[event.u.net.sender].team]); + teamname[Players[event.u.net.sender].team]); if (++playersReady >= minplayers) { if (Game.started > 1) SendPacketTo(event.u.net.sender, 0, @@ -428,12 +425,12 @@ int StartServer(void) } -void SHeader(void) +static void SHeader(void) { fprintf(stderr, MSG_SERVER_TITLE "\n\n", version_string); } -void SUsage(void) +static void SUsage(void) { SHeader(); fprintf(stderr, @@ -454,7 +451,7 @@ void SUsage(void) ); } -void HandleOption(char tag, char *value) +static void HandleOption(char tag, char *value) { switch (tag) { case 'v': //verbose @@ -493,7 +490,7 @@ void HandleOption(char tag, char *value) } } -void ReadConf(char *filename) +static void ReadConf(char *filename) { FILE *file_in; char buf[513]; @@ -528,13 +525,14 @@ void ReadConf(char *filename) } -void CatchInt(int sig) +static void CatchInt(int sig) { siglongjmp(close_env, 1); } int main(int argc, char **argv) { + int i; char ch; if (sigsetjmp(close_env, 1)) exit(0); @@ -543,6 +541,8 @@ int main(int argc, char **argv) maxplayers = 8; Game.initspeed = DEFAULT_INTERVAL; Game.seed = time(0); + for (i = 0; i < sizeof(Game.shapes) / sizeof(Game.shapes[0]); i++) + Game.shapes[i] = 1; Game.gravity = 0; { int i;