Common subdirectories: old-mindless/mindless-1.6/ICONS and mindless-1.6/ICONS
diff -u old-mindless/mindless-1.6/Makefile mindless-1.6/Makefile
--- old-mindless/mindless-1.6/Makefile	2005-07-07 21:31:19.000000000 -0500
+++ mindless-1.6/Makefile	2008-02-11 03:19:17.000000000 -0600
@@ -1,7 +1,7 @@
 CC=		gcc -Wall
 CFLAGS=		-g
 #TOOLKIT=	gdk-pixbuf-config
-TOOLKIT=	pkg-config gtk+-2.0
+TOOLKIT=	pkg-config gtk+-2.0 pango
 ALL_CFLAGS=	$(CFLAGS) `$(TOOLKIT) --cflags`
 LIBS=		`$(TOOLKIT) --libs`
 
diff -u old-mindless/mindless-1.6/playarea.c mindless-1.6/playarea.c
--- old-mindless/mindless-1.6/playarea.c	2005-07-03 01:28:06.000000000 -0500
+++ mindless-1.6/playarea.c	2008-02-19 23:17:10.000000000 -0600
@@ -17,6 +17,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gtk/gtk.h>
+#include <pango/pango.h>
+#include <pango/pango-layout.h>
+#include <pango/pango-context.h>
+#include <pango/pango-font.h>
 #include "game.h"
 #include "playarea.h"
 #include "cardbase.h"
@@ -27,6 +31,8 @@
 #include "prefs.h"
 #include "cardart.h"
 
+#define TWO_HUNDRED     200
+
 #define CARD_WIDTH	48
 #define CARD_HEIGHT	48
 #define BORDER_WIDTH	3
@@ -35,8 +41,7 @@
 
 #define W_OFFSET	3
 
-const char tiny_font_name[] =
-	   "-schumacher-*-medium-r-normal-*-*-80-*-*-*-*-*";
+const char TINY_FONT_NAME[] = "Sans 8";
 
 struct menu_item {
     char *label;
@@ -183,7 +188,11 @@
 
     darea = gtk_drawing_area_new ();
     playarea->darea = darea;
-    playarea->font = gdk_font_load (tiny_font_name);
+    const char *font_name = get_preference (game->prefs, "font_name");
+    if (font_name == NULL)
+	    font_name = TINY_FONT_NAME;
+
+    playarea->font = pango_font_description_from_string (font_name);
     gtk_object_set_user_data (GTK_OBJECT (darea), playarea);
 
     gtk_signal_connect (GTK_OBJECT (darea), "expose_event",
@@ -414,9 +423,12 @@
 {
     struct cardinfo *info;
     char *name, buf[15];
-    int xpos, ypos, height, start, length, i, w, nonzero, p_xpos;
+    int xpos, ypos, height, w, p_xpos, ascent, descent;
     int have_picture, label_width;
     GdkGC *color_gc;
+    PangoContext *context = gtk_widget_get_pango_context (zone->darea);
+    PangoFontMetrics *m = pango_context_get_metrics (context, zone->font, NULL);
+    PangoLayout *layout = pango_layout_new (context);
 
     info = game_get_cardinfo (zone->game, tcard->cid);
     paint_spiffy_card_background (zone, tcard, info);
@@ -425,60 +437,49 @@
 
     /*  Draw the card picture and/or name.  */
     name = (info == NULL ? NULL : info->name);
-    height = zone->font->ascent + zone->font->descent + 2;
+
+    pango_layout_set_font_description (layout, zone->font);
+    ascent = pango_font_metrics_get_ascent (m)/PANGO_SCALE;
+    descent = pango_font_metrics_get_descent (m)/PANGO_SCALE;
+    pango_font_metrics_unref (m);
     xpos = transform (zone, tcard->xpos);
     ypos = transform (zone, tcard->ypos);
     have_picture = FALSE;
-    if (zone->pic_type != PLAYAREA_NAME_ONLY)
+    if (zone->pic_type != PLAYAREA_NAME_ONLY)  
 	have_picture = paint_card_picture (zone, info, xpos, ypos);
     if (((zone->pic_type != PLAYAREA_ART_ONLY) || !have_picture) &&
 	(name != NULL)) {
-	xpos = xpos + 2 + BORDER_WIDTH;
-	ypos = ypos + 3 + BORDER_WIDTH + zone->font->ascent;
-	nonzero = TRUE;
-	for (start = length = i = 0; nonzero; i++) {
-	    nonzero = (name[start+i] != 0);
-	    if (nonzero && (name[start+i] != ' '))
-		continue;
-	    if (!nonzero && (length == 0))
-		break;
-	    w = gdk_text_width (zone->font, name+start, i);
-	    if (w+2*(2+BORDER_WIDTH) <= rcard_width (zone)) {
-		length = i;
-		if (nonzero)
-		    continue;
-		break;
-	    }
-	    if (length == 0)
-		length = i;
-	    gdk_draw_text (zone->darea->window,  zone->font,
-			   zone->darea->style->white_gc,
-			   xpos, ypos, name+start, length);
-	    ypos += height;
-	    start += length+1;
-	    length = i = 0;
-	}
-	gdk_draw_string (zone->darea->window,  zone->font,
-			 zone->darea->style->white_gc,
-			 xpos, ypos, name+start);
+	xpos = xpos + BORDER_WIDTH + 2;
+	ypos = ypos + BORDER_WIDTH + 1;
+	// Write Card Name Wrapped
+	pango_layout_set_text (layout, name, strlen(name));
+	pango_layout_set_width (layout, rcard_width(zone) * PANGO_SCALE);
+	pango_layout_context_changed (layout);
+	gdk_draw_layout (zone->darea->window,
+		    	 zone->darea->style->white_gc,
+		    	 xpos,
+		    	 ypos,
+		    	 layout);
 	xpos = transform (zone, tcard->xpos);
     }
     /*  Draw the card power/toughness.  */
     name = (info == NULL ? NULL : info->pow_tgh);
     if (name != NULL) {
 	paint_powtuf_background (zone, tcard, name);
-	w = gdk_string_width (zone->font, name);
-	p_xpos = xpos + rcard_width (zone) - w - BORDER_WIDTH - 2;
+	pango_layout_set_text (layout, name, strlen(name));
+	pango_layout_get_pixel_size (layout, &w, &height);
+	p_xpos = xpos + rcard_width (zone) - w - BORDER_WIDTH;
 	ypos = transform (zone, tcard->ypos);
-	ypos += rcard_height (zone) - zone->font->descent-BORDER_WIDTH-2;
-	gdk_draw_string (zone->darea->window, zone->font,
-			 zone->darea->style->black_gc, p_xpos, ypos, name);
+	ypos += rcard_height (zone) - height - BORDER_WIDTH;
+	pango_layout_set_width (layout, rcard_width(zone) * PANGO_SCALE);
+	pango_layout_context_changed (layout);
+	gdk_draw_layout (zone->darea->window,
+		    	 zone->darea->style->black_gc,
+		    	 p_xpos,
+		    	 ypos,
+		    	 layout);
     }
     /*  Draw the card flags.  */
-    xpos = xpos + 1 + BORDER_WIDTH;
-    ypos = transform (zone, tcard->ypos);
-    ypos = ypos + 6 + height;
-    height += 2;
     label_width = rcard_width (zone) - 1 - 2*BORDER_WIDTH;
     if ((tcard->flags & CARD_TAPPED_FLAG) != 0) {
 	if ((tcard->flags & CARD_NO_UNTAP_FLAG) != 0) {
@@ -489,25 +490,36 @@
 	} else {
 	    color_gc = zone->darea->style->white_gc;
 	}
+	name = "Tapped";
+	pango_layout_set_text (layout, name, strlen(name));
+	pango_layout_get_pixel_size (layout, &w, &height);
+	xpos = xpos + 1 + BORDER_WIDTH;
+	ypos = transform (zone, tcard->ypos);
+	ypos = ypos + 6 + height;
+	height += 2;
 	gdk_draw_rectangle (zone->darea->window, color_gc, TRUE,
 			    xpos, ypos, label_width, height);
-	name = "Tapped";
-	w = gdk_string_width (zone->font, name);
-	gdk_draw_string (zone->darea->window,  zone->font,
-			 zone->darea->style->black_gc,
-			 xpos + (label_width-w)/2,
-			 ypos+zone->font->ascent+2, name);
+	pango_layout_context_changed (layout);
+	gdk_draw_layout (zone->darea->window,
+		    	 zone->darea->style->black_gc,
+			 xpos + (label_width - w) / 2,
+			 ypos + 1,
+		    	 layout);
 	ypos += height;
     }
     if ((tcard->flags & CARD_ATTACK_FLAG) != 0) {
 	gdk_draw_rectangle (zone->darea->window, zone->darea->style->white_gc,
 			    TRUE, xpos, ypos, label_width, height);
 	name = "Attack";
-	w = gdk_string_width (zone->font, name);
-	gdk_draw_string (zone->darea->window,  zone->font,
-			 zone->darea->style->black_gc,
-			 xpos + (label_width-w)/2,
-			 ypos+zone->font->ascent+2, name);
+	pango_layout_set_text (layout, name, strlen(name));
+	pango_layout_get_pixel_size (layout, &w, NULL);
+	pango_layout_context_changed (layout);
+	gdk_draw_layout (zone->darea->window,
+		    	 zone->darea->style->black_gc,
+			 xpos + (label_width - w) / 2,
+		    	 ypos,
+		    	 layout);
+
 	ypos += height;
     }
     if (tcard->counters != 0) {
@@ -515,13 +527,18 @@
 			    TRUE, xpos, ypos, label_width, height);
 	sprintf (buf, "%d ctr", tcard->counters);
 	name = buf;
-	w = gdk_string_width (zone->font, name);
-	gdk_draw_string (zone->darea->window,  zone->font,
-			 zone->darea->style->black_gc,
-			 xpos + (label_width-w)/2,
-			 ypos+zone->font->ascent+2, name);
+	pango_layout_set_text (layout, name, strlen(name));
+	pango_layout_get_pixel_size (layout, &w, NULL);
+	pango_layout_context_changed (layout);
+	gdk_draw_layout (zone->darea->window,
+		    	 zone->darea->style->black_gc,
+			 xpos + (label_width - w) / 2,
+		    	 ypos,
+		    	 layout);
 	ypos += height;
     }
+    g_object_unref (G_OBJECT (layout));
+
 }
 
 static void playarea_get_cardart_size (struct playarea *zone,
@@ -1053,7 +1070,15 @@
 
     if (*powtuf == 0)
 	return;
-    height = zone->font->ascent + zone->font->descent + 4;
+    PangoContext *context = gtk_widget_get_pango_context (zone->darea);
+    PangoFontMetrics *m = pango_context_get_metrics (context, zone->font, NULL);
+    PangoLayout *layout = pango_layout_new (context);
+    pango_layout_set_font_description (layout, zone->font);
+    int ascent = pango_font_metrics_get_ascent (m);
+    int descent = pango_font_metrics_get_descent (m);
+    pango_font_metrics_unref (m);
+
+    height = ascent + descent + 4;
     playarea_get_cardart_size (zone, &pic_width, &pic_height);
     card_width = rcard_width (zone);
     card_height = rcard_height (zone);
@@ -1061,7 +1086,8 @@
     if (pow_height >= height)
 	return;
 
-    width = gdk_string_width (zone->font, powtuf) + 4;
+    pango_layout_get_pixel_size (layout, &width, NULL);
+    g_object_unref (G_OBJECT (layout));
     xpos = transform (zone, tcard->xpos) + card_width-width-BORDER_WIDTH;
     ypos = transform (zone, tcard->ypos) + card_height-height-BORDER_WIDTH;
     boxcolor = &lite_color[tcard->color-1];
diff -u old-mindless/mindless-1.6/playarea.h mindless-1.6/playarea.h
--- old-mindless/mindless-1.6/playarea.h	2004-07-18 19:28:28.000000000 -0500
+++ mindless-1.6/playarea.h	2008-02-11 02:41:56.000000000 -0600
@@ -13,7 +13,7 @@
     GdkPixbuf *background_pix;
     int background_type;
     GtkWidget *darea;
-    GdkFont *font;
+    PangoFontDescription *font;
     GdkGC *drag_gc;
     GdkGC *color_gc;
     GtkWidget *popup_menu;
