PGRUBER@luke.dnet.ge.COM (09/22/90)
To those how are interested in a different life: Below is a 'diff -c' of the life.c file, include with xlock, and a modified verison, hobbesLife.c, that will display the hobbes character. Also the bitmap of hobbes is included and a list of lines added to xlock.c to accept the new bitmap. Steps: 1) make necessary changes, add new file name (.c &.o) to Makefile 2) do a makedepend, and 3) do a make xlock Pat Patrick Gruber GE phone (609) 338-2866 Front and Cooper Sts. Camden, NJ. 08102 email PGRUBER%LUKE.DECNET@CRD.GE.COM *** life.c Mon Sep 25 11:18:10 1989 --- hobbesLife.c Thu Jul 19 08:02:09 1990 *************** *** 36,42 **** #include <X11/Xos.h> #include <X11/Xlib.h> #include <X11/Xutil.h> ! #include "lifeicon.bit"; static XImage logo = { 0, 0, /* width, height */ --- 36,42 ---- #include <X11/Xos.h> #include <X11/Xlib.h> #include <X11/Xutil.h> ! #include "hobbes"; static XImage logo = { 0, 0, /* width, height */ *************** *** 317,323 **** else XPutImage(Dsp, Win, Gc, &logo, 0, 0, xb + xs * col, yb + ys * row, ! lifeicon_width, lifeicon_height); } static void --- 317,323 ---- else XPutImage(Dsp, Win, Gc, &logo, 0, 0, xb + xs * col, yb + ys * row, ! hobbes_width, hobbes_height); } static void *************** *** 376,382 **** } void ! drawlife() { unsigned char *loc, *temploc; --- 376,382 ---- } void ! drawhobbes() { unsigned char *loc, *temploc; *************** *** 456,462 **** } void ! initlife(d, w, g, c, t, n) Display *d; Window w; GC g; --- 456,462 ---- } void ! inithobbes(d, w, g, c, t, n) Display *d; Window w; GC g; *************** *** 486,494 **** srandom(time((long *) 0)); init_fates(); ! logo.data = lifeicon_bits; ! logo.width = lifeicon_width; ! logo.height = lifeicon_height; logo.bytes_per_line = 4; } if (!color) --- 486,494 ---- srandom(time((long *) 0)); init_fates(); ! logo.data = hobbes_bits; ! logo.width = hobbes_width; ! logo.height = hobbes_height; logo.bytes_per_line = 4; } if (!color) *************** *** 501,507 **** ys = height / NROWS; xb = (width - xs * NCOLS) / 2; yb = (height - ys * NROWS) / 2; ! pixels = (xs < lifeicon_width || ys < lifeicon_height); XFillRectangle(Dsp, Win, eraseGC, 0, 0, width, height); --- 501,507 ---- ys = height / NROWS; xb = (width - xs * NCOLS) / 2; yb = (height - ys * NROWS) / 2; ! pixels = (xs < hobbes_width || ys < hobbes_height); XFillRectangle(Dsp, Win, eraseGC, 0, 0, width, height); *************** *** 518,524 **** } int ! lifedone() { int elapsedTime = seconds() - startTime; --- 518,524 ---- } int ! hobbesdone() { int elapsedTime = seconds() - startTime; The following lines where added to xlock.c 122 extern void inithobbes(); 123 extern int hobbesdone(); 124 extern void drawhobbes(); 134 {"hobbes", hobbesdone, drawhobbes, inithobbes} hobbes bit map copy for network #define hobbes_width 25 #define hobbes_height 25 #define hobbes_x_hot 16 #define hobbes_y_hot 15 static char hobbes_bits[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x78, 0xe0, 0x07, 0x00, 0xfc, 0xf8, 0x07, 0x00, 0xcc, 0x07, 0x04, 0x00, 0x0c, 0xf0, 0x0b, 0x00, 0x7c, 0x1c, 0x06, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x10, 0x00, 0xe0, 0x41, 0x11, 0x00, 0x20, 0x40, 0x11, 0x00, 0xe0, 0x07, 0x10, 0x00, 0xe0, 0xc1, 0x17, 0x00, 0x10, 0xe0, 0x2f, 0x00, 0x20, 0xe0, 0x6f, 0x00, 0x18, 0xe0, 0x2f, 0x00, 0x20, 0xc6, 0x67, 0x00, 0x18, 0x84, 0x2b, 0x00, 0x20, 0x08, 0x64, 0x00, 0x70, 0xf0, 0x13, 0x00, 0x80, 0x01, 0x08, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};