whoops, there were a few '>=' signs where there should have been '==' signs.
diff -ur gtetrinet-0.7.11/src/config.c gtetrinet-0.7.11-new/src/config.c
--- gtetrinet-0.7.11/src/config.c 2006-11-04 01:49:49.000000000 +1300
+++ gtetrinet-0.7.11-new/src/config.c 2009-12-31 18:29:29.000000000 +1300
@@ -62,6 +62,7 @@
GDK_Right,
GDK_Left,
GDK_Up,
+ GDK_x,
GDK_Control_R,
GDK_Down,
GDK_space,
@@ -72,7 +73,19 @@
GDK_3,
GDK_4,
GDK_5,
- GDK_6
+ GDK_6,
+ GDK_y,
+ GDK_h,
+ GDK_n,
+ GDK_u,
+ GDK_j,
+ GDK_m,
+ GDK_i,
+ GDK_k,
+ GDK_comma,
+ GDK_o,
+ GDK_l,
+ GDK_period,
};
guint keys[K_NUM];
@@ -268,6 +281,15 @@
else
keys[K_ROTRIGHT] = defaultkeys[K_ROTRIGHT];
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rotate_up", NULL);
+ if (p)
+ {
+ keys[K_ROTUP] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_ROTUP] = defaultkeys[K_ROTUP];
+
p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rotate_left", NULL);
if (p)
{
@@ -368,6 +390,114 @@
keys[K_SPECIAL6] = defaultkeys[K_SPECIAL6];
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall0", NULL);
+ if (p)
+ {
+ keys[K_L0] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L0] = defaultkeys[K_L0];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall1", NULL);
+ if (p)
+ {
+ keys[K_L1] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L1] = defaultkeys[K_L1];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall2", NULL);
+ if (p)
+ {
+ keys[K_L2] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L2] = defaultkeys[K_L2];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall3", NULL);
+ if (p)
+ {
+ keys[K_L3] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L3] = defaultkeys[K_L3];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall4", NULL);
+ if (p)
+ {
+ keys[K_L4] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L4] = defaultkeys[K_L4];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/leftwall5", NULL);
+ if (p)
+ {
+ keys[K_L5] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_L5] = defaultkeys[K_L5];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall0", NULL);
+ if (p)
+ {
+ keys[K_R0] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R0] = defaultkeys[K_R0];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall1", NULL);
+ if (p)
+ {
+ keys[K_R1] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R1] = defaultkeys[K_R1];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall2", NULL);
+ if (p)
+ {
+ keys[K_R2] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R2] = defaultkeys[K_R2];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall3", NULL);
+ if (p)
+ {
+ keys[K_R3] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R3] = defaultkeys[K_R3];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall4", NULL);
+ if (p)
+ {
+ keys[K_R4] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R4] = defaultkeys[K_R4];
+
+ p = gconf_client_get_string (gconf_client,
"/apps/gtetrinet/keys/rightwall5", NULL);
+ if (p)
+ {
+ keys[K_R5] = gdk_keyval_to_lower (gdk_keyval_from_name (p));
+ g_free (p);
+ }
+ else
+ keys[K_R5] = defaultkeys[K_R5];
+
/* Get the timestamp option. */
timestampsenable = gconf_client_get_bool (gconf_client,
"/apps/gtetrinet/partyline/enable_timestamps", NULL);
@@ -517,6 +647,18 @@
}
void
+keys_rotate_up_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client; /* Suppress compile warnings */
+ cnxn_id = cnxn_id; /* Suppress compile warnings */
+
+ keys[K_ROTUP] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
keys_rotate_right_changed (GConfClient *client,
guint cnxn_id,
GConfEntry *entry)
@@ -625,6 +767,150 @@
}
void
+keys_leftwall0_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L0] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall1_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L1] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall2_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L2] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall3_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L3] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall4_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L4] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_leftwall5_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_L5] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall0_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R0] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall1_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R1] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall2_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R2] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall3_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R3] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall4_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R4] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
+keys_rightwall5_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry)
+{
+
+ client = client;
+ cnxn_id = cnxn_id;
+
+ keys[K_R5] = gdk_keyval_to_lower (gdk_keyval_from_name
(gconf_value_get_string (gconf_entry_get_value (entry))));
+}
+
+void
partyline_enable_timestamps_changed (GConfClient *client,
guint cnxn_id,
GConfEntry *entry)
diff -ur gtetrinet-0.7.11/src/config.h gtetrinet-0.7.11-new/src/config.h
--- gtetrinet-0.7.11/src/config.h 2005-03-19 10:19:17.000000000 +1300
+++ gtetrinet-0.7.11-new/src/config.h 2009-12-31 18:27:40.000000000 +1300
@@ -57,6 +57,11 @@
GConfEntry *entry);
void
+keys_rotate_up_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
keys_rotate_right_changed (GConfClient *client,
guint cnxn_id,
GConfEntry *entry);
@@ -102,6 +107,66 @@
GConfEntry *entry);
void
+keys_leftwall0_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_leftwall1_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_leftwall2_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_leftwall3_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_leftwall4_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_leftwall5_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall0_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall1_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall2_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall3_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall4_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
+keys_rightwall5_changed (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry);
+
+void
partyline_enable_timestamps_changed (GConfClient *client,
guint cnxn_id,
GConfEntry *entry);
@@ -118,8 +183,9 @@
typedef enum
{
K_RIGHT,
- K_LEFT,
+ K_LEFT,
K_ROTRIGHT,
+ K_ROTUP,
K_ROTLEFT,
K_DOWN,
K_DROP,
@@ -131,6 +197,18 @@
K_SPECIAL4,
K_SPECIAL5,
K_SPECIAL6,
+ K_L0,
+ K_L1,
+ K_L2,
+ K_L3,
+ K_L4,
+ K_L5,
+ K_R5,
+ K_R4,
+ K_R3,
+ K_R2,
+ K_R1,
+ K_R0,
/* not a key but the number of configurable keys */
K_NUM
} GTetrinetKeys;
diff -ur gtetrinet-0.7.11/src/dialogs.c gtetrinet-0.7.11-new/src/dialogs.c
--- gtetrinet-0.7.11/src/dialogs.c 2006-11-04 01:49:49.000000000 +1300
+++ gtetrinet-0.7.11-new/src/dialogs.c 2009-12-31 18:02:02.000000000 +1300
@@ -538,6 +538,7 @@
actions[K_LEFT] = _("Move left");
actions[K_DOWN] = _("Move down");
actions[K_ROTRIGHT] = _("Rotate right");
+ actions[K_ROTUP] = _("Rotate 180");
actions[K_ROTLEFT] = _("Rotate left");
actions[K_DROP] = _("Drop piece");
actions[K_DISCARD] = _("Discard special");
@@ -548,11 +549,24 @@
actions[K_SPECIAL4] = _("Special to field 4");
actions[K_SPECIAL5] = _("Special to field 5");
actions[K_SPECIAL6] = _("Special to field 6");
+ actions[K_L0] = _("Move to left wall");
+ actions[K_L1] = _("Move 1 away from left wall");
+ actions[K_L2] = _("Move 2 away from left wall");
+ actions[K_L3] = _("Move 3 away from left wall");
+ actions[K_L4] = _("Move 4 away from left wall");
+ actions[K_L5] = _("Move 5 away from left wall");
+ actions[K_R0] = _("Move to right wall");
+ actions[K_R1] = _("Move 1 away from right wall");
+ actions[K_R2] = _("Move 2 away from right wall");
+ actions[K_R3] = _("Move 3 away from right wall");
+ actions[K_R4] = _("Move 4 away from right wall");
+ actions[K_R5] = _("Move 5 away from right wall");
gconf_keys[K_RIGHT] = g_strdup ("/apps/gtetrinet/keys/right");
gconf_keys[K_LEFT] = g_strdup ("/apps/gtetrinet/keys/left");
gconf_keys[K_DOWN] = g_strdup ("/apps/gtetrinet/keys/down");
gconf_keys[K_ROTRIGHT] = g_strdup ("/apps/gtetrinet/keys/rotate_right");
+ gconf_keys[K_ROTUP] = g_strdup ("/apps/gtetrinet/keys/rotate_up");
gconf_keys[K_ROTLEFT] = g_strdup ("/apps/gtetrinet/keys/rotate_left");
gconf_keys[K_DROP] = g_strdup ("/apps/gtetrinet/keys/drop");
gconf_keys[K_DISCARD] = g_strdup ("/apps/gtetrinet/keys/discard");
@@ -563,6 +577,18 @@
gconf_keys[K_SPECIAL4] = g_strdup ("/apps/gtetrinet/keys/special4");
gconf_keys[K_SPECIAL5] = g_strdup ("/apps/gtetrinet/keys/special5");
gconf_keys[K_SPECIAL6] = g_strdup ("/apps/gtetrinet/keys/special6");
+ gconf_keys[K_L0] = g_strdup ("/apps/gtetrinet/keys/leftwall0");
+ gconf_keys[K_L1] = g_strdup ("/apps/gtetrinet/keys/leftwall1");
+ gconf_keys[K_L2] = g_strdup ("/apps/gtetrinet/keys/leftwall2");
+ gconf_keys[K_L3] = g_strdup ("/apps/gtetrinet/keys/leftwall3");
+ gconf_keys[K_L4] = g_strdup ("/apps/gtetrinet/keys/leftwall4");
+ gconf_keys[K_L5] = g_strdup ("/apps/gtetrinet/keys/leftwall5");
+ gconf_keys[K_R0] = g_strdup ("/apps/gtetrinet/keys/rightwall0");
+ gconf_keys[K_R1] = g_strdup ("/apps/gtetrinet/keys/rightwall1");
+ gconf_keys[K_R2] = g_strdup ("/apps/gtetrinet/keys/rightwall2");
+ gconf_keys[K_R3] = g_strdup ("/apps/gtetrinet/keys/rightwall3");
+ gconf_keys[K_R4] = g_strdup ("/apps/gtetrinet/keys/rightwall4");
+ gconf_keys[K_R5] = g_strdup ("/apps/gtetrinet/keys/rightwall5");
for (i = 0; i < K_NUM; i ++) {
gtk_list_store_append (keys_store, &iter);
diff -ur gtetrinet-0.7.11/src/gtetrinet.c gtetrinet-0.7.11-new/src/gtetrinet.c
--- gtetrinet-0.7.11/src/gtetrinet.c 2005-03-19 10:19:18.000000000 +1300
+++ gtetrinet-0.7.11-new/src/gtetrinet.c 2009-12-31 18:14:27.000000000
+1300
@@ -170,6 +170,10 @@
(GConfClientNotifyFunc) keys_rotate_left_changed,
NULL, NULL, NULL);
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rotate_up",
+ (GConfClientNotifyFunc) keys_rotate_up_changed,
+ NULL, NULL, NULL);
+
gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rotate_right",
(GConfClientNotifyFunc) keys_rotate_right_changed,
NULL, NULL, NULL);
@@ -210,6 +214,54 @@
(GConfClientNotifyFunc) keys_special6_changed,
NULL, NULL, NULL);
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall0",
+ (GConfClientNotifyFunc) keys_leftwall0_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall1",
+ (GConfClientNotifyFunc) keys_leftwall1_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall2",
+ (GConfClientNotifyFunc) keys_leftwall2_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall3",
+ (GConfClientNotifyFunc) keys_leftwall3_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall4",
+ (GConfClientNotifyFunc) keys_leftwall4_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/leftwall5",
+ (GConfClientNotifyFunc) keys_leftwall5_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall0",
+ (GConfClientNotifyFunc) keys_rightwall0_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall1",
+ (GConfClientNotifyFunc) keys_rightwall1_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall2",
+ (GConfClientNotifyFunc) keys_rightwall2_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall3",
+ (GConfClientNotifyFunc) keys_rightwall3_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall4",
+ (GConfClientNotifyFunc) keys_rightwall4_changed,
+ NULL, NULL, NULL);
+
+ gconf_client_notify_add (gconf_client, "/apps/gtetrinet/keys/rightwall5",
+ (GConfClientNotifyFunc) keys_rightwall5_changed,
+ NULL, NULL, NULL);
+
gconf_client_notify_add (gconf_client,
"/apps/gtetrinet/partyline/enable_timestamps",
(GConfClientNotifyFunc)
partyline_enable_timestamps_changed,
NULL, NULL, NULL);
diff -ur gtetrinet-0.7.11/src/tetrinet.c gtetrinet-0.7.11-new/src/tetrinet.c
--- gtetrinet-0.7.11/src/tetrinet.c 2006-09-02 22:59:13.000000000 +1200
+++ gtetrinet-0.7.11-new/src/tetrinet.c 2009-12-31 19:01:07.000000000 +1300
@@ -1736,6 +1736,14 @@
tetris_drawcurrentblock ();
return TRUE;
}
+ else if (gdk_keyval_to_lower (keyval) == keys[K_ROTUP]) {
+ if (!nextblocktimeout)
+ sound_playsound (S_ROTATE);
+ tetris_blockrotate (-1);
+ tetris_blockrotate (-1);
+ tetris_drawcurrentblock ();
+ return TRUE;
+ }
else if (gdk_keyval_to_lower (keyval) == keys[K_ROTLEFT]) {
if (!nextblocktimeout)
sound_playsound (S_ROTATE);
@@ -1753,6 +1761,44 @@
tetris_drawcurrentblock ();
return TRUE;
}
+ else if ((gdk_keyval_to_lower (keyval) == keys[K_L0]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_L1]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_L2]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_L3]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_L4]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_L5]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R5]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R4]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R3]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R2]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R1]) ||
+ (gdk_keyval_to_lower (keyval) == keys[K_R0])){
+ int i, keypos, gkv;
+ gkv = gdk_keyval_to_lower (keyval);
+ for(i = K_L0; i <= K_R0; i++){
+ if(keys[i] == gkv){
+ keypos = i;
+ }
+ }
+ if(keypos <= K_L5){
+ for (i = 0; i < 12; i++){
+ tetris_blockmove (-1);
+ }
+ for (i = keypos; i > K_L0; i--){
+ tetris_blockmove (1);
+ }
+ }
+ else if(keypos > K_L5){
+ for (i = 0; i < 12; i++){
+ tetris_blockmove (1);
+ }
+ for (i = keypos; i < K_R0; i++){
+ tetris_blockmove (-1);
+ }
+ }
+ tetris_drawcurrentblock ();
+ return TRUE;
+ }
else if (gdk_keyval_to_lower (keyval) == keys[K_DOWN]) {
if (!downpressed) {
tetrinet_timeout ();