-2004-10-5 Amanpreet Singh Alam <amanpreetaalm@yahoo.com>
+2004-10-26 Jordi Mallach <jordi@sindominio.net>
+
+ * NEWS: Update for new translations.
+
+2004-10-21 Loren Abrams <durnew@pacbell.net>
+
+ * NEWS: GTetrinet is now minimally compliant with tetrinet.org's new
+ scoring requirements.
+ * src/tetrinet.c (tetrinet_inmessage): Added support for btrixnewgame.
+ Added support for clientinfo identification. Both features of the
+ Blocktrix protocol.
+ (tetrinet_nextblock): Added support for a no block delay btrixnewgame.
+ * src/client.c: Added support for transfer of IN_BTRIXNEWGAME and
+ OUT_CLIENTINFO protocol messages.
+
+2004-10-05 Amanpreet Singh Alam <amanpreetaalm@yahoo.com>
- * configure.in (ALL_LINGUAS) -> add "pa" Punjabi Language
+ * configure.in (ALL_LINGUAS): Add "pa" Punjabi language.
2004-08-31 Jordi Mallach <jordi@sindominio.net>
-GTetrinet 0.7.8 - 2004-09-xx
+GTetrinet 0.7.8 - 2004-11-xx
+- Added minimal support for the Blocktrix protocol, now in use at
+ tetrinet.org (Loren Abrams).
- New and updated translations: Italian (Riccardo Bozzo),
- German (Gerfried Fuchs), Korean (Michael Kim).
+ German (Gerfried Fuchs), Korean (Michael Kim),
+ Canadian English (Adam Weinberger), Serbian (Danilo Ĺ egan),
+ Punjabi (Amanpreet Singh Alam).
GTetrinet 0.7.7 - 2004-04-18
- Regenerated tarball using automake 1.4 to workaround
{IN_SPECLIST, "speclist"},
{IN_SMSG, "smsg"},
{IN_SACT, "sact"},
+
+ {IN_BTRIXNEWGAME, "btrixnewgame"},
+
{0, 0}
};
{OUT_GMSG, "gmsg"},
{OUT_VERSION, "version"},
+
+ {OUT_CLIENTINFO, "clientinfo"},
+
{0, 0}
};
shutdown (sock, 2);
close (sock);
connected = 0;
+
+ // Allow for sending the blocktrix init on reconnect.
+ pnumrec = 0;
}
}
IN_NEWGAME, IN_INGAME, IN_PAUSE, IN_ENDGAME,
IN_F, IN_SB, IN_LVL, IN_GMSG,
IN_WINLIST,
- IN_SPECJOIN, IN_SPECLEAVE, IN_SPECLIST, IN_SMSG, IN_SACT
+ IN_SPECJOIN, IN_SPECLEAVE, IN_SPECLIST, IN_SMSG, IN_SACT,
+ IN_BTRIXNEWGAME
};
/* outmsgs are messages going out to the server */
OUT_PLAYERLOST,
OUT_F, OUT_SB, OUT_LVL, OUT_GMSG,
OUT_STARTGAME, OUT_PAUSE,
- OUT_VERSION
+ OUT_VERSION,
+ OUT_CLIENTINFO
};
/* functions for connecting and disconnecting */
#define MAX_PLAYERS 7
+char pnumrec = 0;
+char btrixgame = 0;
+
char playernames[MAX_PLAYERS][128];
char teamnames[MAX_PLAYERS][128];
int playerlevels[MAX_PLAYERS];
}
break;
case IN_PLAYERNUM:
+ pnumrec = 1;
tmp_pnum = atoi (data);
if (tmp_pnum >= MAX_PLAYERS)
break;
partyline_text (buf);
}
break;
+ case IN_BTRIXNEWGAME:
+ btrixgame = 1;
+ // Leak through to NEWGAME.
case IN_NEWGAME:
{
int i, j;
show_start_button ();
/* go back to partyline when game ends */
show_partyline_page ();
+
+ // Return delay to normal.
+ btrixgame = 0;
break;
case IN_F:
{
token = strtok (NULL, "");
if (token == NULL) break;
playerlevels[pnum] = atoi (token);
+ if (!pnum && !playerlevels[pnum] && !pnumrec) {
+ client_outmessage(OUT_CLIENTINFO, APPNAME" "APPVERSION);
+ pnumrec = 1;
+ }
if (ingame) tetrinet_updatelevels ();
}
break;
if (nextblocktimeout) return;
tetrinet_removetimeout ();
nextblocktimeout =
- gtk_timeout_add (NEXTBLOCKDELAY, (GtkFunction)tetrinet_nextblocktimeout,
- NULL);
+ gtk_timeout_add ( (btrixgame ? 0 : NEXTBLOCKDELAY),
+ (GtkFunction)tetrinet_nextblocktimeout, NULL);
}
gint tetrinet_nextblocktimeout (void)
typedef char FIELD[FIELDHEIGHT][FIELDWIDTH];
+extern char pnumrec;
+
extern int playernum;
extern char team[128], nick[128], specpassword[128];
extern FIELD fields[7];