code duplication
[netris.git] / client.c
index 648db94190113958c580c88c4276f0daa8291215..d4ab95a6c2073cd14bfb5bb66ab4a7b03f80ff17 100644 (file)
--- a/client.c
+++ b/client.c
@@ -59,7 +59,7 @@ static char *keyNames[KT_numKeys+1] = {
        "Faster", "Pause", "Redraw", "Say", "Quit", NULL
 };
 
-sets_t Sets = {7, 0, 1, 1, 1};
+sets_t Sets = {3, 0, 1, 1, 1};
 
 static char keyTable[KT_numKeys+1];
 
@@ -252,14 +252,17 @@ static void game_reset(void)
 
        lastadd = me;
        SRandom(Game.seed);
+
+       // speed = MAX(initspeed / SPEEDINC ** (level - 1), SPEEDMINIMUM)
        Game.speed = Game.initspeed;
        for (i = 1; i < Players[me].score.level; i++)
                Game.speed /= SPEEDINC;
        if (Game.speed < SPEEDMINIMUM)
                Game.speed = SPEEDMINIMUM;
+
        ResetBaseTime();  //reset timer
        SetITimer(Game.speed, Game.speed);
-       Players[me].nextShape = ChooseOption(stdOptions);
+       Players[me].nextShape = ChooseOption(Game.shapes);
        for (i = 1; i <= maxPlayer; i++) {
                Players[i].score.score = Players[i].score.lines
                = Players[i].score.adds = 0;
@@ -301,12 +304,12 @@ static void game_clear(int scr)
                                        junkLines = linesCleared - (Game.gravity ? 1 : linesCleared < 4);
                                        data[0] = junkLines;
                                        SendPacket(me, NP_giveJunk, sizeof(data), data);
-                                       msg_add("\\%dYou send %d lines",
+                                       msg_add("\\%d" MSG_GAME_LINES_SELF,
                                                Players[me].team > 7 ? 7 : Players[me].team, junkLines);
                                } //send junk to others
                        } //multiplayer
                        else {
-                               msg_add("\\%dYou cleared %d lines",
+                               msg_add("\\%d" MSG_GAME_LINE_SELF,
                                        Players[me].team > 7 ? 7 : Players[me].team, linesCleared);
                        } //singleplayer
                } //IT'S YOU
@@ -333,10 +336,10 @@ static void game_loop(void)
                        Players[me].flags ^= SCF_paused;
                        if (Game.started > 1)
                                msg_add(Players[me].flags & SCF_paused
-                                       ? "You paused the game" : "You unpaused the game");
+                                       ? MSG_GAME_PAUSE_SELF : MSG_GAME_UNPAUSE_SELF);
                        else
                                msg_add(Players[me].flags & SCF_paused
-                                       ? "You are not ready" : "You are ready");
+                                       ? MSG_GAME_UNREADY_SELF : MSG_GAME_READY_SELF);
                        game_setpaused();
                        if (Game.type == GT_classicTwo)
                                SendPacket(me, NP_pause, 0, NULL);
@@ -362,7 +365,7 @@ static void game_loop(void)
                                return handle_cmd(i, cmdend + 1);
                        }
                }
-               msg_add("Unknown command /%s", cmd);
+               msg_add(MSG_CMD_EUNKNOWN, cmd);
        }
 
        void handle_str(char *str)
@@ -531,7 +534,7 @@ static void game_loop(void)
                        if (Players[me].alive <= 0) break;
                        memcpy(data, net.data, sizeof(data[0]));
                        column = Random(0, Players[me].boardWidth);
-                       msg_add("\\%d%s sends %d lines",
+                       msg_add("\\%d" MSG_GAME_LINES,
                                Players[net.uid].team > 7 ? 7 : Players[net.uid].team,
                                Players[net.uid].name, data[0]);
                        lastadd = net.uid;
@@ -556,7 +559,7 @@ static void game_loop(void)
 
                        Game.started = 2;
                        paused = 0;
-                       msg_add("The game has started");
+                       msg_add(MSG_GAME_START);
                        for (i = 1; i < MAX_SCREENS; i++) if (Players[i].alive > 0)
                                window_msg_status(i);
                        break;
@@ -568,7 +571,7 @@ static void game_loop(void)
                                float timer;
                                int i;
 
-                               msg_add("The game has ended");
+                               msg_add(MSG_GAME_STOP);
                                timer = CurTimeval() / 1e6;
                                if (timer > 5) {
                                        for (i = MAX_SCREENS-1; i > 0; i--) if (Players[i].alive >= 0) {
@@ -579,7 +582,7 @@ static void game_loop(void)
                                                if (Players[i].alive > 0) winner = i;
                                        } //show player stats
                                if (winner)
-                                       msg_add("%s won after %0.0f'%02d\"",
+                                       msg_add(MSG_GAME_WINNER,
                                                Players[winner].name, timer / 60, (int)timer % 60);
                                } //show game stats
                                msg_add(NULL);
@@ -609,9 +612,9 @@ static void game_loop(void)
                        player_empty(net.uid);
                        screen_setup();
                        if (Players[net.uid].team > 7)
-                               msg_add("%s joined the game", Players[net.uid].name);
+                               msg_add(MSG_GAME_JOIN, Players[net.uid].name);
                        else
-                               msg_add("%s joined %s team", Players[net.uid].name,
+                               msg_add(MSG_GAME_JOIN_TEAM, Players[net.uid].name,
                                        teamname[Players[net.uid].team]);
                        if (Players[net.uid].flags & SCF_paused) {
                                game_setpaused();
@@ -628,11 +631,11 @@ static void game_loop(void)
                        Players[net.uid].flags ^= SCF_paused;
                        if (Game.started > 1)
                                strcpy(s, Players[net.uid].flags&SCF_paused
-                                       ? "paused the game" : "unpaused the game");
+                                       ? MSG_GAME_PAUSE : MSG_GAME_UNPAUSE);
                        else
                                strcpy(s, Players[net.uid].flags&SCF_paused
-                                       ? "is not ready" : "is ready");
-                       msg_add("%s %s", Players[net.uid].name, s);
+                                       ? MSG_GAME_UNREADY : MSG_GAME_READY);
+                       msg_add(s, Players[net.uid].name);
                        game_setpaused();
                        window_msg_status(net.uid);
                        changed = 1;
@@ -643,7 +646,7 @@ static void game_loop(void)
                        game_setpaused();
                        oldPaused = 0;
                        Players[net.uid].alive = -1;
-                       msg_add("%s left", Players[net.uid].name);
+                       msg_add(MSG_GAME_PART, Players[net.uid].name);
                        game_setpaused();
                        window_msg_status(net.uid);
                        changed = 1;
@@ -654,13 +657,13 @@ static void game_loop(void)
                        memcpy(&i, net.data, sizeof(i));
                        Players[net.uid].alive = 0;
                        if (i == me)
-                               msg_add("\\%dYou fragged %s",
+                               msg_add("\\%d" MSG_GAME_KILL_1_2,
                                        Players[me].team > 7 ? 7 : Players[me].team, Players[net.uid].name);
                        else if (i == net.uid)
-                               msg_add("\\%d%s died",
+                               msg_add("\\%d" MSG_GAME_KILL_2_2,
                                        Players[i].team > 7 ? 7 : Players[i].team, Players[i].name);
                        else
-                               msg_add("\\%d%s fragged %s",
+                               msg_add("\\%d" MSG_GAME_KILL_2_3,
                                        Players[i].team > 7 ? 7 : Players[i].team, Players[i].name,
                                        Players[net.uid].name);
                        game_setpaused();
@@ -681,13 +684,13 @@ static void game_loop(void)
        while (gameStatus) {
                gameStatus = 2;
                if (Players[me].alive > 0) {
-                       if (!player_piece(me, ChooseOption(stdOptions))) {
+                       if (!player_piece(me, ChooseOption(Game.shapes))) {
                                netint4 data[4];
 
                                Players[me].alive = 0;
-                               if (lastadd == me) msg_add("\\%dYou died",
+                               if (lastadd == me) msg_add("\\%d" MSG_GAME_KILL_1_1,
                                        Players[me].team > 7 ? 7 : Players[me].team);
-                               else msg_add("\\%d%s fragged you",
+                               else msg_add("\\%d" MSG_GAME_KILL_2_1,
                                        Players[lastadd].team > 7 ? 7 : Players[lastadd].team,
                                        Players[lastadd].name);
                                if (Game.type == GT_classicTwo)
@@ -809,7 +812,10 @@ int main(int argc, char **argv)
                game_loop();
        } //client
        else {
+               int i;
                Game.seed = time(0);
+               for (i = 0; i < sizeof(Game.shapes) / sizeof(Game.shapes[0]); i++)
+                       Game.shapes[i] = 1;
                Game.started = 2;
                me = 1;
                memcpy(&Players[me], &Players[0], sizeof(player_t));