code duplication
[netris.git] / server.c
index 3eebe8ae9a54eaa06f83a6eb86f80ad46c6ac122..70406a3b4daec99a11f2226fd91fd05302e77f6d 100644 (file)
--- 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;