+2000-06-27
+ * Pause/resume now causes a message to be displayed on fields page.
+
+2000-06-26
+ * GTetrinet no longer resends field upon player join.
+ * Fixed spurious "The game has resumed" messages.
+ * Merged partyline patch for high chars.
+
2000-06-08
* Changed website addresses.
* Made configure run properly under GNOME 1.2.
fonts[3] = gdk_fontset_load("-adobe-helvetica-bold-o-normal--*-120-*-*-*-*-*-*,*--12-*");
}
-void textbox_addtext (GtkText *textbox, char *text)
+void textbox_addtext (GtkText *textbox, unsigned char *text)
{
GdkColor *color, *lastcolor;
int attr; /* bits are used as flags: bold, italic */
if (gtk_text_get_length (textbox)) /* not first line */
gtk_text_insert (textbox, fonts[attr], color, NULL, "\n", 1);
for (i = 0; text[i]; i ++) {
- if (text[i] < 32) {
+ if (text[i] == 0xFF) { /* reset */
+ lastcolor = color = >K_WIDGET(textbox)->style->black;
+ last = 0; attr = 0;
+ }
+ else if (text[i] < 32) {
switch (text[i]) {
case 0x02: attr = attr ^ 0x01; break; /* bold */
case 0x16: attr = attr ^ 0x02; break; /* italics */
case 0x1F: break; /* underline not available */
- case -1: /* reset */
- lastcolor = color = >K_WIDGET(textbox)->style->black;
- last = 0; attr = 0;
- break;
default: /* it is a color... */
if (text[i] > 0x1A) goto next; /* bounds checking */
if (text[i] == last) {
extern int randomnum (int n);
extern void fdreadline (int fd, char *buf);
extern void textbox_setup (void);
-extern void textbox_addtext (GtkText *textbox, char *text);
+extern void textbox_addtext (GtkText *textbox, unsigned char *text);
extern void adjust_bottom (GtkAdjustment *adj);
extern char *nocolor (char *str);
extern GtkWidget *pixmap_label (GdkPixmap *pm, GdkBitmap *mask, char *str);
/* check moderator status */
checkmoderatorstatus ();
/* send out our field */
- if (!spectating) tetrinet_resendfield ();
+ /* if (!spectating) tetrinet_resendfield (); */
}
break;
case IN_PLAYERLEAVE:
}
break;
case IN_PAUSE:
- if (atoi(data)) {
- tetrinet_pausegame ();
- partyline_text ("\024*** The game has \02paused");
- }
- else {
- tetrinet_resumegame ();
- partyline_text ("\024*** The game has \02resumed");
- }
- commands_checkstate ();
- break;
+ {
+ int newstate = atoi(data);
+ /* bail out if no state change */
+ if (! (newstate ^ paused)) break;
+ if (newstate) {
+ tetrinet_pausegame ();
+ partyline_text ("\024*** The game has \02paused");
+ fields_attdefmsg ("The game has \02\014Paused");
+ }
+ else {
+ tetrinet_resumegame ();
+ partyline_text ("\024*** The game has \02resumed");
+ fields_attdefmsg ("The game has \02\014Resumed");
+ }
+ commands_checkstate ();
+ break;
+ }
case IN_ENDGAME:
tetrinet_endgame ();
commands_checkstate ();