non-exclusive instadrop and soft drop
authorMischa POSLAWSKY <netris@shiar.org>
Mon, 5 Mar 2007 07:49:04 +0000 (08:49 +0100)
committerMischa POSLAWSKY <netris@shiar.org>
Mon, 5 Mar 2007 07:49:04 +0000 (08:49 +0100)
Replaces dropmode setting, allowing both modes at once (or one by
binding a single drop key to the preferred action).

Continuous soft drop (dropmode=2) is not possible anymore; hopefully
not too big a loss.

client.c
netris.conf
netris.h

index c4de9b1f5c89494f21c39d57d9b1d13a9d3589fb..788684cf0282be3be353b3c9dc90adc0d025907c 100644 (file)
--- a/client.c
+++ b/client.c
@@ -52,12 +52,12 @@ static struct option options[] = {
 };
 
 enum {
-       KT_left, KT_right, KT_rotright, KT_rotleft, KT_drop, KT_down,
+       KT_left, KT_right, KT_rotright, KT_rotleft, KT_drop, KT_dropsoft, KT_down,
        KT_faster, KT_pause, KT_redraw, KT_say, KT_quit, KT_numKeys
 };
 
 static char *keyNames[KT_numKeys+1] = {
-       "Left", "Right", "RotRight", "RotLeft", "Drop", "Down",
+       "Left", "Right", "RotRight", "RotLeft", "Drop", "DropSoft", "Down",
        "Faster", "Pause", "Redraw", "Say", "Quit", NULL
 };
 
@@ -333,7 +333,6 @@ void OneGame(void)
 {
        int changed = 0;
        short gameStatus = 2; //2=loop; 1=new piece; 0=quit
-       int dropMode = 0;
        int chatMode = 0;
        char chatText[MSG_WIDTH] = "\0";
 
@@ -476,14 +475,19 @@ void OneGame(void)
                        else
                                gameStatus = 1; //completely dropped
                        break;
-               case KT_drop:
+               case KT_dropsoft:
                        SetITimer(Game.speed, Game.speed);
                        if (DropPiece(me)) {
                                if (spied) SendPacket(me, NP_drop, 0, NULL);
-                               if (!Sets.dropmode) gameStatus = 1; //instadrop
                        }
                        else gameStatus = 1; //dropped
-                       dropMode = Sets.dropmode > 1;
+                       break;
+               case KT_drop:
+                       SetITimer(Game.speed, Game.speed);
+                       if (DropPiece(me)) {
+                               if (spied) SendPacket(me, NP_drop, 0, NULL);
+                       }
+                       gameStatus = 1; // drop
                        break;
                case KT_faster:
                        if (game != GT_onePlayer) break;
@@ -495,11 +499,6 @@ void OneGame(void)
                        changed = 1;
                        break;
                }
-
-               if (dropMode && DropPiece(me) > 0) {
-                       SetITimer(Game.speed, Game.speed);
-                       if (spied) SendPacket(me, NP_drop, 0, NULL);
-               }
                return;
        } //GameKey
 
@@ -770,7 +769,6 @@ GameLoop:
                                oldPaused = paused;
                        } //(un)pause
                } //game loop
-               dropMode = 0;
                Players[me].score.score++;
                CheckClears(me);
        } //new piece loop
index edc7b30a479d526c115a8cef1fcde501712bf21c..bddac4010f311673b392a56f07ee4dc36e33e31e 100644 (file)
@@ -1,6 +1,6 @@
 ### NETRIS 0.5.82 Config file ###
 
-Keys           = 4685 2
+Keys           = 4685 02
 Color          = 1
 Handicap       = 1
 ascii          = 0
index f92817f880332064c2ea8af1037cb2941e7ff222..489dfaccdb4aa2a03a049f96c016de579f737cd8 100644 (file)
--- a/netris.h
+++ b/netris.h
@@ -63,9 +63,9 @@ typedef long netint4;
 
 #define CONFIG_FILE "netris.conf"
 
-//#define DEFAULT_KEYS "hlkj mfp^ltq"
-//#define DEFAULT_KEYS "4685 2fp^l^mq"
-#define DEFAULT_KEYS "dcaf b^fp^l^mq"
+//#define DEFAULT_KEYS "hlkj mnfp^ltq"
+//#define DEFAULT_KEYS "4685 02fp^l^mq"
+#define DEFAULT_KEYS "dcaf xb^fp^l^mq"
 
 #define MAX_BOARD_WIDTH    32
 #define MAX_BOARD_HEIGHT   64