summaryrefslogtreecommitdiffstats
path: root/games/x11
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1994-09-04 04:03:31 +0000
committerjkh <jkh@FreeBSD.org>1994-09-04 04:03:31 +0000
commitd8a265c292730d37ead16d6333be10451286af8a (patch)
treecb4c99719941e9adcca318e58d903337a369d49f /games/x11
downloadFreeBSD-src-d8a265c292730d37ead16d6333be10451286af8a.zip
FreeBSD-src-d8a265c292730d37ead16d6333be10451286af8a.tar.gz
Bring in the 4.4 Lite games directory, modulo man page changes and segregation
of the x11 based games. I'm not going to tag the originals with bsd_44_lite and do this in two stages since it's just not worth it for this collection, and I've got directory renames to deal with that way. Bleah. Submitted by: jkh
Diffstat (limited to 'games/x11')
-rw-r--r--games/x11/xneko/Makefile9
-rw-r--r--games/x11/xneko/bitmaps/awake.xbm14
-rw-r--r--games/x11/xneko/bitmaps/cursor.xbm8
-rw-r--r--games/x11/xneko/bitmaps/cursor_mask.xbm6
-rw-r--r--games/x11/xneko/bitmaps/down1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/down2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dtogi1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dtogi2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dwleft1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dwleft2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dwright1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/dwright2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/icon.xbm14
-rw-r--r--games/x11/xneko/bitmaps/jare2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/kaki1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/kaki2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/left1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/left2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/ltogi1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/ltogi2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/mati2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/mati3.xbm14
-rw-r--r--games/x11/xneko/bitmaps/right1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/right2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/rtogi1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/rtogi2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/sleep1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/sleep2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/space.xbm14
-rw-r--r--games/x11/xneko/bitmaps/up1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/up2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/upleft1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/upleft2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/upright1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/upright2.xbm14
-rw-r--r--games/x11/xneko/bitmaps/utogi1.xbm14
-rw-r--r--games/x11/xneko/bitmaps/utogi2.xbm14
-rw-r--r--games/x11/xneko/xneko.684
-rw-r--r--games/x11/xneko/xneko.c1762
-rw-r--r--games/x11/xroach/Makefile10
-rw-r--r--games/x11/xroach/bitmaps/roach000.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach015.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach030.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach045.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach060.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach075.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach090.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach105.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach120.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach135.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach150.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach165.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach180.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach195.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach210.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach225.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach240.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach255.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach270.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach285.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach300.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach315.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach330.xbm30
-rw-r--r--games/x11/xroach/bitmaps/roach345.xbm30
-rw-r--r--games/x11/xroach/roachmap.h65
-rw-r--r--games/x11/xroach/xroach.675
-rw-r--r--games/x11/xroach/xroach.c602
67 files changed, 3817 insertions, 0 deletions
diff --git a/games/x11/xneko/Makefile b/games/x11/xneko/Makefile
new file mode 100644
index 0000000..a8a9a18
--- /dev/null
+++ b/games/x11/xneko/Makefile
@@ -0,0 +1,9 @@
+# @(#)Makefile 8.1 (Berkeley) 5/31/93
+
+PROG= xneko
+MAN6= xneko.6
+DPADD+= ${X11BASE}/lib/libX11.a ${LIBM}
+LDDESTDIR+= -L${X11BASE}/lib
+LDADD+= -lX11 -lm
+
+.include <bsd.prog.mk>
diff --git a/games/x11/xneko/bitmaps/awake.xbm b/games/x11/xneko/bitmaps/awake.xbm
new file mode 100644
index 0000000..7ad4135
--- /dev/null
+++ b/games/x11/xneko/bitmaps/awake.xbm
@@ -0,0 +1,14 @@
+#define awake_width 32
+#define awake_height 32
+static char awake_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x04,
+ 0x40, 0x10, 0x10, 0x02, 0x80, 0x28, 0x28, 0x01, 0x00, 0x49, 0x24, 0x00,
+ 0x06, 0x44, 0x44, 0x60, 0x18, 0x84, 0x42, 0x18, 0x60, 0x82, 0x83, 0x06,
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x22, 0x88, 0x00, 0x0f, 0x22, 0x88, 0x78,
+ 0x00, 0x22, 0x88, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x3a, 0xb9, 0x00,
+ 0x00, 0x04, 0x40, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x70, 0x1c, 0x02,
+ 0x00, 0x40, 0x04, 0x05, 0x00, 0x20, 0x88, 0x04, 0x00, 0x10, 0x50, 0x02,
+ 0x00, 0x08, 0x20, 0x01, 0x00, 0x0b, 0xa0, 0x01, 0x80, 0x0c, 0x61, 0x02,
+ 0x40, 0x18, 0x31, 0x04, 0x40, 0x10, 0x11, 0x04, 0xc0, 0x11, 0x11, 0x07,
+ 0x60, 0x90, 0x13, 0x0c, 0xe0, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/cursor.xbm b/games/x11/xneko/bitmaps/cursor.xbm
new file mode 100644
index 0000000..2646ea7
--- /dev/null
+++ b/games/x11/xneko/bitmaps/cursor.xbm
@@ -0,0 +1,8 @@
+#define cursor_width 17
+#define cursor_height 12
+#define cursor_x_hot 8
+#define cursor_y_hot 7
+static char cursor_bits[] = {
+ 0x20, 0x00, 0x00, 0x90, 0x20, 0x00, 0x40, 0x40, 0x00, 0x0c, 0x40, 0x00,
+ 0x14, 0x8f, 0x00, 0x94, 0xb0, 0x00, 0x7c, 0x20, 0x01, 0x0c, 0x4c, 0x01,
+ 0x0a, 0x42, 0x01, 0x42, 0x82, 0x00, 0x3b, 0x87, 0x00, 0xff, 0x7f, 0x00};
diff --git a/games/x11/xneko/bitmaps/cursor_mask.xbm b/games/x11/xneko/bitmaps/cursor_mask.xbm
new file mode 100644
index 0000000..2548715
--- /dev/null
+++ b/games/x11/xneko/bitmaps/cursor_mask.xbm
@@ -0,0 +1,6 @@
+#define cursor_mask_width 17
+#define cursor_mask_height 12
+static char cursor_mask_bits[] = {
+ 0x20, 0x00, 0x00, 0x90, 0x20, 0x00, 0x40, 0x40, 0x00, 0x0c, 0x40, 0x00,
+ 0x1c, 0x8f, 0x00, 0x9c, 0xbf, 0x00, 0xfc, 0x3f, 0x01, 0xfc, 0x7f, 0x01,
+ 0xfe, 0x7f, 0x01, 0xfe, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x7f, 0x00};
diff --git a/games/x11/xneko/bitmaps/down1.xbm b/games/x11/xneko/bitmaps/down1.xbm
new file mode 100644
index 0000000..3a8218f
--- /dev/null
+++ b/games/x11/xneko/bitmaps/down1.xbm
@@ -0,0 +1,14 @@
+#define down1_width 32
+#define down1_height 32
+static char down1_bits[] = {
+ 0x00, 0x80, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,
+ 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,
+ 0x00, 0x78, 0x1e, 0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x02, 0x40, 0x00,
+ 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01, 0x80, 0x10, 0x10, 0x02,
+ 0x80, 0x28, 0x28, 0x02, 0x40, 0x48, 0x24, 0x04, 0x40, 0x44, 0x44, 0x04,
+ 0x40, 0x84, 0x42, 0x04, 0x40, 0x82, 0x83, 0x04, 0x40, 0x02, 0x80, 0x04,
+ 0x60, 0x02, 0x80, 0x0c, 0xc0, 0x02, 0x80, 0x06, 0x20, 0x23, 0x88, 0x09,
+ 0xa0, 0x23, 0x88, 0x0b, 0xe0, 0x22, 0x88, 0x0e, 0x80, 0x04, 0x41, 0x02,
+ 0x00, 0x0f, 0xe0, 0x01, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0xc0, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/down2.xbm b/games/x11/xneko/bitmaps/down2.xbm
new file mode 100644
index 0000000..dcb92e4
--- /dev/null
+++ b/games/x11/xneko/bitmaps/down2.xbm
@@ -0,0 +1,14 @@
+#define down2_width 32
+#define down2_height 32
+static char down2_bits[] = {
+ 0x00, 0x8c, 0x61, 0x00, 0x00, 0x5a, 0xb2, 0x00, 0x00, 0x52, 0x92, 0x00,
+ 0x00, 0x52, 0x92, 0x00, 0x00, 0x61, 0x0a, 0x01, 0x00, 0x61, 0x06, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x00, 0x00, 0x12, 0x90, 0x00,
+ 0x00, 0x29, 0x28, 0x01, 0x00, 0x49, 0x24, 0x01, 0x00, 0x45, 0x44, 0x01,
+ 0x00, 0x85, 0x42, 0x01, 0x00, 0x83, 0x83, 0x01, 0x00, 0x03, 0x80, 0x01,
+ 0x60, 0x03, 0x80, 0x0d, 0x80, 0x03, 0x80, 0x03, 0x00, 0x23, 0x88, 0x01,
+ 0x00, 0x23, 0x88, 0x01, 0x00, 0x22, 0x88, 0x00, 0x00, 0x06, 0xc1, 0x00,
+ 0x00, 0x0a, 0xa0, 0x00, 0x00, 0x72, 0x9c, 0x00, 0x00, 0xc2, 0x87, 0x00,
+ 0x00, 0x24, 0x48, 0x00, 0x00, 0x24, 0x48, 0x00, 0x00, 0x34, 0x58, 0x00,
+ 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dtogi1.xbm b/games/x11/xneko/bitmaps/dtogi1.xbm
new file mode 100644
index 0000000..06cb335
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dtogi1.xbm
@@ -0,0 +1,14 @@
+#define dtogi1_width 32
+#define dtogi1_height 32
+static char dtogi1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00,
+ 0x00, 0x18, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x40, 0x04, 0x00,
+ 0x00, 0x78, 0x3c, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x02, 0x80, 0x00,
+ 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x02, 0x80, 0x10, 0x10, 0x02,
+ 0x80, 0x28, 0x28, 0x02, 0xc0, 0x48, 0x24, 0x06, 0x30, 0x45, 0x44, 0x19,
+ 0x08, 0x84, 0x42, 0x20, 0xf8, 0x83, 0x83, 0x3f, 0x00, 0x02, 0x80, 0x00,
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x22, 0x88, 0x00,
+ 0x00, 0x22, 0x88, 0x00, 0x00, 0x26, 0x88, 0x00, 0x00, 0x06, 0x41, 0x00,
+ 0x00, 0x0a, 0x60, 0x00, 0x00, 0x72, 0x5c, 0x00, 0x00, 0xd2, 0x57, 0x00,
+ 0x00, 0x52, 0x54, 0x00, 0x00, 0x5a, 0x54, 0x00, 0x00, 0x54, 0x54, 0x00,
+ 0x00, 0x54, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dtogi2.xbm b/games/x11/xneko/bitmaps/dtogi2.xbm
new file mode 100644
index 0000000..4b9105e
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dtogi2.xbm
@@ -0,0 +1,14 @@
+#define dtogi2_width 32
+#define dtogi2_height 32
+static char dtogi2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x12, 0x00,
+ 0x00, 0x00, 0x11, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, 0x80, 0x04, 0x00,
+ 0x00, 0xf0, 0x3c, 0x00, 0x00, 0x08, 0x40, 0x00, 0x00, 0x04, 0x80, 0x00,
+ 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x80, 0x10, 0x10, 0x02,
+ 0x80, 0x28, 0x28, 0x02, 0xc0, 0x48, 0x24, 0x06, 0x30, 0x45, 0x44, 0x19,
+ 0x08, 0x84, 0x42, 0x20, 0xf8, 0x83, 0x83, 0x3f, 0x00, 0x02, 0x80, 0x00,
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x22, 0x88, 0x00,
+ 0x00, 0x22, 0x88, 0x00, 0x00, 0x22, 0xc8, 0x00, 0x00, 0x04, 0xc1, 0x00,
+ 0x00, 0x0c, 0xa0, 0x00, 0x00, 0x74, 0x9c, 0x00, 0x00, 0xd4, 0x97, 0x00,
+ 0x00, 0x54, 0x94, 0x00, 0x00, 0x54, 0xb4, 0x00, 0x00, 0x54, 0x54, 0x00,
+ 0x00, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dwleft1.xbm b/games/x11/xneko/bitmaps/dwleft1.xbm
new file mode 100644
index 0000000..d529546
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dwleft1.xbm
@@ -0,0 +1,14 @@
+#define dwleft1_width 32
+#define dwleft1_height 32
+static char dwleft1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
+ 0x00, 0x00, 0x1c, 0x07, 0x00, 0xc0, 0x07, 0x08, 0x00, 0x20, 0xf0, 0x07,
+ 0x00, 0x10, 0xc0, 0x01, 0x00, 0x08, 0x00, 0x03, 0x18, 0x0f, 0x00, 0x06,
+ 0x28, 0x0d, 0x00, 0x04, 0x48, 0x09, 0x10, 0x04, 0x88, 0x11, 0x08, 0x04,
+ 0x08, 0x20, 0x04, 0x04, 0x08, 0x40, 0x04, 0x04, 0x08, 0x40, 0x04, 0x02,
+ 0x24, 0x42, 0x04, 0x02, 0x24, 0x42, 0x04, 0x02, 0x27, 0xf2, 0x08, 0x02,
+ 0x04, 0x00, 0x08, 0x02, 0x24, 0x00, 0x08, 0x02, 0x04, 0x00, 0x11, 0x01,
+ 0x68, 0x20, 0x91, 0x00, 0xf0, 0x1f, 0x8a, 0x00, 0xc0, 0x1f, 0x4a, 0x00,
+ 0x00, 0x3f, 0x4c, 0x00, 0x00, 0xfe, 0x24, 0x00, 0x00, 0x8c, 0x37, 0x00,
+ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dwleft2.xbm b/games/x11/xneko/bitmaps/dwleft2.xbm
new file mode 100644
index 0000000..6248e70
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dwleft2.xbm
@@ -0,0 +1,14 @@
+#define dwleft2_width 32
+#define dwleft2_height 32
+static char dwleft2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x80, 0x3f, 0x00, 0x00, 0xe0, 0x40, 0x3e, 0x00, 0x90, 0x38, 0x41,
+ 0x00, 0x20, 0x89, 0x38, 0x00, 0x60, 0x72, 0x04, 0x00, 0x90, 0x1c, 0x04,
+ 0x00, 0x08, 0x00, 0x04, 0x80, 0x0d, 0x00, 0x04, 0x86, 0x07, 0x00, 0x04,
+ 0xde, 0x0c, 0x00, 0x04, 0xf2, 0x18, 0x00, 0x02, 0xe2, 0x31, 0x00, 0x01,
+ 0x86, 0x60, 0x80, 0x00, 0x04, 0x40, 0x60, 0x00, 0x04, 0x80, 0x10, 0x00,
+ 0x04, 0x00, 0x08, 0x00, 0x15, 0x71, 0x08, 0x00, 0x16, 0x09, 0x04, 0x00,
+ 0x14, 0x81, 0x04, 0x00, 0x04, 0x40, 0x02, 0x00, 0x2c, 0x30, 0x01, 0x00,
+ 0x18, 0x8f, 0x00, 0x00, 0xf8, 0x43, 0x00, 0x00, 0x7c, 0x22, 0x00, 0x00,
+ 0x3c, 0x22, 0x00, 0x00, 0x3c, 0x12, 0x00, 0x00, 0x18, 0x0e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dwright1.xbm b/games/x11/xneko/bitmaps/dwright1.xbm
new file mode 100644
index 0000000..e071a2f
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dwright1.xbm
@@ -0,0 +1,14 @@
+#define dwright1_width 32
+#define dwright1_height 32
+static char dwright1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
+ 0xe0, 0x38, 0x00, 0x00, 0x10, 0xe0, 0x03, 0x00, 0xe0, 0x0f, 0x04, 0x00,
+ 0x80, 0x03, 0x08, 0x00, 0xc0, 0x00, 0x10, 0x00, 0x60, 0x00, 0xf0, 0x18,
+ 0x20, 0x00, 0xb0, 0x14, 0x20, 0x08, 0x90, 0x12, 0x20, 0x10, 0x88, 0x11,
+ 0x20, 0x20, 0x04, 0x10, 0x20, 0x20, 0x02, 0x10, 0x40, 0x20, 0x02, 0x10,
+ 0x40, 0x20, 0x42, 0x24, 0x40, 0x20, 0x42, 0x24, 0x40, 0x10, 0x4f, 0xe4,
+ 0x40, 0x10, 0x00, 0x20, 0x40, 0x10, 0x00, 0x24, 0x80, 0x88, 0x00, 0x20,
+ 0x00, 0x89, 0x04, 0x16, 0x00, 0x51, 0xf8, 0x0f, 0x00, 0x52, 0xf8, 0x03,
+ 0x00, 0x32, 0xfc, 0x00, 0x00, 0x24, 0x7f, 0x00, 0x00, 0xec, 0x31, 0x00,
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/dwright2.xbm b/games/x11/xneko/bitmaps/dwright2.xbm
new file mode 100644
index 0000000..6565caa
--- /dev/null
+++ b/games/x11/xneko/bitmaps/dwright2.xbm
@@ -0,0 +1,14 @@
+#define dwright2_width 32
+#define dwright2_height 32
+static char dwright2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xfc, 0x01, 0x00, 0x7c, 0x02, 0x07, 0x00, 0x82, 0x1c, 0x09, 0x00,
+ 0x1c, 0x91, 0x04, 0x00, 0x20, 0x4e, 0x06, 0x00, 0x20, 0x38, 0x09, 0x00,
+ 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0xb0, 0x01, 0x20, 0x00, 0xe0, 0x61,
+ 0x20, 0x00, 0x30, 0x7b, 0x40, 0x00, 0x18, 0x4f, 0x80, 0x00, 0x8c, 0x47,
+ 0x00, 0x01, 0x06, 0x61, 0x00, 0x06, 0x02, 0x20, 0x00, 0x08, 0x01, 0x20,
+ 0x00, 0x10, 0x00, 0x20, 0x00, 0x10, 0x8e, 0xa8, 0x00, 0x20, 0x90, 0x68,
+ 0x00, 0x20, 0x81, 0x28, 0x00, 0x40, 0x02, 0x20, 0x00, 0x80, 0x0c, 0x34,
+ 0x00, 0x00, 0xf1, 0x18, 0x00, 0x00, 0xc2, 0x1f, 0x00, 0x00, 0x44, 0x3e,
+ 0x00, 0x00, 0x44, 0x3c, 0x00, 0x00, 0x48, 0x3c, 0x00, 0x00, 0x70, 0x18,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/icon.xbm b/games/x11/xneko/bitmaps/icon.xbm
new file mode 100644
index 0000000..f1f6f05
--- /dev/null
+++ b/games/x11/xneko/bitmaps/icon.xbm
@@ -0,0 +1,14 @@
+#define icon_width 32
+#define icon_height 32
+static char icon_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x06, 0xc0, 0x01, 0x00, 0x07,
+ 0x40, 0x03, 0x80, 0x0f, 0x60, 0x06, 0x80, 0x1f, 0xa0, 0x05, 0xc0, 0x1d,
+ 0xb0, 0xea, 0xcf, 0x1f, 0x50, 0x3c, 0xf8, 0x3f, 0x58, 0x03, 0xc0, 0x3f,
+ 0xc8, 0x01, 0x00, 0x3f, 0x68, 0x00, 0x00, 0x3e, 0x38, 0x00, 0x00, 0x3c,
+ 0x08, 0x00, 0x00, 0x38, 0x08, 0x00, 0x00, 0x20, 0x8c, 0x0f, 0xf8, 0x20,
+ 0x44, 0x10, 0x04, 0x21, 0x24, 0x28, 0x0a, 0x22, 0x26, 0x20, 0x02, 0x22,
+ 0x42, 0x10, 0x04, 0x41, 0x82, 0x0f, 0xf8, 0x40, 0x02, 0x00, 0x00, 0x40,
+ 0x02, 0x80, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x63, 0x00, 0x00, 0x80,
+ 0x91, 0x00, 0x00, 0xc7, 0x49, 0x00, 0x80, 0xc9, 0xa9, 0x20, 0x82, 0xe2,
+ 0xa1, 0xc0, 0x01, 0xa5, 0xa3, 0x00, 0x00, 0xa5, 0x05, 0x00, 0x00, 0x91,
+ 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80};
diff --git a/games/x11/xneko/bitmaps/jare2.xbm b/games/x11/xneko/bitmaps/jare2.xbm
new file mode 100644
index 0000000..86723f7
--- /dev/null
+++ b/games/x11/xneko/bitmaps/jare2.xbm
@@ -0,0 +1,14 @@
+#define jare2_width 32
+#define jare2_height 32
+static char jare2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
+ 0x00, 0xd0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10, 0x02, 0x00,
+ 0xe0, 0x10, 0x0c, 0x00, 0x20, 0x37, 0x10, 0x00, 0x20, 0x18, 0x20, 0x00,
+ 0x40, 0x00, 0x41, 0x00, 0x40, 0x00, 0x42, 0x00, 0x40, 0x00, 0x50, 0x00,
+ 0x40, 0x08, 0x48, 0x00, 0x80, 0x10, 0x41, 0x00, 0x80, 0x00, 0x3c, 0x00,
+ 0x00, 0x39, 0x22, 0x00, 0x00, 0x02, 0x44, 0x00, 0x00, 0x7c, 0x7c, 0x00,
+ 0x00, 0x40, 0x44, 0x00, 0x00, 0x20, 0x46, 0x00, 0x00, 0x10, 0x40, 0x00,
+ 0x00, 0x08, 0x30, 0x00, 0x00, 0x0b, 0xa4, 0x01, 0x80, 0x0c, 0x63, 0x02,
+ 0x40, 0x18, 0x01, 0x04, 0x40, 0x10, 0x01, 0x3c, 0xc0, 0x11, 0x05, 0x47,
+ 0x60, 0x90, 0x03, 0x3c, 0xe0, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/kaki1.xbm b/games/x11/xneko/bitmaps/kaki1.xbm
new file mode 100644
index 0000000..3f2cbdf
--- /dev/null
+++ b/games/x11/xneko/bitmaps/kaki1.xbm
@@ -0,0 +1,14 @@
+#define kaki1_width 32
+#define kaki1_height 32
+static char kaki1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00,
+ 0x00, 0x62, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x02, 0x03, 0x00,
+ 0x3c, 0x02, 0x34, 0x00, 0xc4, 0x03, 0x58, 0x00, 0x08, 0x00, 0x58, 0x00,
+ 0x08, 0x20, 0x58, 0x00, 0x10, 0x10, 0xd8, 0x00, 0x20, 0x08, 0x18, 0x01,
+ 0x20, 0xc8, 0x18, 0x02, 0xe0, 0x21, 0x18, 0x04, 0x20, 0x00, 0x34, 0x08,
+ 0xe0, 0x05, 0x24, 0x08, 0xc0, 0x60, 0x38, 0x08, 0x00, 0x1f, 0x10, 0x08,
+ 0x00, 0x08, 0x20, 0x08, 0x00, 0x0b, 0x20, 0x08, 0x80, 0x0c, 0x21, 0x0c,
+ 0x40, 0x18, 0x31, 0x04, 0x40, 0x10, 0x11, 0x02, 0xc0, 0x11, 0x91, 0x7f,
+ 0x60, 0x90, 0xf3, 0x80, 0xe0, 0xff, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/kaki2.xbm b/games/x11/xneko/bitmaps/kaki2.xbm
new file mode 100644
index 0000000..88d9540
--- /dev/null
+++ b/games/x11/xneko/bitmaps/kaki2.xbm
@@ -0,0 +1,14 @@
+#define kaki2_width 32
+#define kaki2_height 32
+static char kaki2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00,
+ 0x20, 0x90, 0x00, 0x00, 0x50, 0x10, 0x01, 0x00, 0x90, 0x08, 0x02, 0x00,
+ 0x10, 0x09, 0x04, 0x00, 0x10, 0x06, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00,
+ 0x20, 0x00, 0x10, 0x00, 0x20, 0x80, 0x10, 0x00, 0x20, 0x60, 0x10, 0x00,
+ 0x20, 0x10, 0x08, 0x00, 0xe0, 0x81, 0xf9, 0x03, 0x20, 0x60, 0x18, 0x04,
+ 0xe0, 0xc5, 0x0f, 0x08, 0xc0, 0xe0, 0x00, 0x08, 0x00, 0x9f, 0x11, 0x08,
+ 0x00, 0x08, 0x2e, 0x08, 0x00, 0x0b, 0x20, 0x08, 0x80, 0x0c, 0x21, 0x08,
+ 0x40, 0x18, 0x31, 0x04, 0x40, 0x10, 0x11, 0x04, 0xc0, 0x11, 0x91, 0x7f,
+ 0x60, 0x90, 0xf3, 0x80, 0xe0, 0xff, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/left1.xbm b/games/x11/xneko/bitmaps/left1.xbm
new file mode 100644
index 0000000..706bbff
--- /dev/null
+++ b/games/x11/xneko/bitmaps/left1.xbm
@@ -0,0 +1,14 @@
+#define left1_width 32
+#define left1_height 32
+static char left1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x0e, 0x00, 0x00, 0x80, 0x31, 0x00, 0x00, 0x60, 0xc0, 0x00,
+ 0x00, 0x10, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x0c, 0x04, 0x00, 0x02,
+ 0x14, 0x04, 0x00, 0x04, 0x64, 0x02, 0x00, 0x08, 0x88, 0x03, 0x01, 0x12,
+ 0x08, 0x84, 0x00, 0x23, 0x08, 0x80, 0x00, 0x45, 0x04, 0x40, 0x00, 0x49,
+ 0x12, 0x40, 0x00, 0x92, 0x12, 0x40, 0x00, 0xa4, 0x12, 0x87, 0x00, 0xc2,
+ 0xc3, 0x81, 0x00, 0x01, 0x01, 0x40, 0x03, 0x01, 0x02, 0x80, 0x9e, 0x01,
+ 0x04, 0x03, 0x91, 0x01, 0xf8, 0x0e, 0xce, 0x03, 0x00, 0x3c, 0xc8, 0x03,
+ 0x00, 0xf8, 0x2f, 0x03, 0x00, 0xf0, 0x38, 0x00, 0x00, 0xe0, 0x18, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/left2.xbm b/games/x11/xneko/bitmaps/left2.xbm
new file mode 100644
index 0000000..f0d1aed
--- /dev/null
+++ b/games/x11/xneko/bitmaps/left2.xbm
@@ -0,0 +1,14 @@
+#define left2_width 32
+#define left2_height 32
+static char left2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x00, 0x00, 0xe0, 0x60, 0x00, 0x00, 0x90, 0xa0, 0x00, 0x00, 0x88,
+ 0x20, 0x01, 0x00, 0x44, 0x20, 0x02, 0x00, 0x22, 0x30, 0x0c, 0x00, 0x11,
+ 0x08, 0x10, 0xc0, 0x08, 0x24, 0x30, 0x38, 0x08, 0x24, 0x20, 0x06, 0x08,
+ 0x24, 0x40, 0x01, 0x10, 0x02, 0xc0, 0x00, 0x10, 0xc2, 0x03, 0x00, 0x10,
+ 0x02, 0x00, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x78, 0x00, 0x00, 0x20,
+ 0x80, 0x07, 0x08, 0x20, 0x80, 0x01, 0x30, 0xc0, 0xc0, 0x00, 0xc0, 0x81,
+ 0x60, 0x18, 0xf8, 0x9f, 0x30, 0xfc, 0x87, 0xbf, 0x18, 0x3f, 0x00, 0xf8,
+ 0xcc, 0x07, 0x00, 0x30, 0x38, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/ltogi1.xbm b/games/x11/xneko/bitmaps/ltogi1.xbm
new file mode 100644
index 0000000..a52961c
--- /dev/null
+++ b/games/x11/xneko/bitmaps/ltogi1.xbm
@@ -0,0 +1,14 @@
+#define ltogi1_width 32
+#define ltogi1_height 32
+static char ltogi1_bits[] = {
+ 0xc0, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00,
+ 0x43, 0x04, 0x00, 0x00, 0x37, 0x18, 0x00, 0x00, 0x0f, 0x20, 0x00, 0x00,
+ 0x07, 0x40, 0x00, 0x00, 0x27, 0x40, 0x00, 0x00, 0x27, 0x40, 0x00, 0x00,
+ 0x2d, 0x40, 0x00, 0x00, 0x31, 0x40, 0x00, 0x00, 0xc1, 0xa0, 0x0f, 0x00,
+ 0x03, 0x00, 0x30, 0x00, 0x0d, 0x00, 0x40, 0x00, 0x38, 0xc0, 0x80, 0x00,
+ 0x70, 0x20, 0x00, 0x01, 0x40, 0x10, 0x00, 0x02, 0x40, 0x08, 0x00, 0x02,
+ 0x80, 0x09, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x10,
+ 0x00, 0x1c, 0x00, 0x20, 0x00, 0x38, 0x03, 0x46, 0x00, 0xfe, 0x01, 0x8d,
+ 0x00, 0x8f, 0xe0, 0x70, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xfe, 0x1f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/ltogi2.xbm b/games/x11/xneko/bitmaps/ltogi2.xbm
new file mode 100644
index 0000000..11d6368
--- /dev/null
+++ b/games/x11/xneko/bitmaps/ltogi2.xbm
@@ -0,0 +1,14 @@
+#define ltogi2_width 32
+#define ltogi2_height 32
+static char ltogi2_bits[] = {
+ 0xc0, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00,
+ 0x40, 0x04, 0x00, 0x00, 0x41, 0x18, 0x00, 0x00, 0x31, 0x20, 0x00, 0x00,
+ 0x09, 0x40, 0x00, 0x00, 0x25, 0x40, 0x00, 0x00, 0x25, 0x40, 0x00, 0x00,
+ 0x23, 0x40, 0x00, 0x00, 0x83, 0x41, 0x00, 0x00, 0x65, 0xa0, 0x0f, 0x00,
+ 0x05, 0x00, 0x30, 0x00, 0xe9, 0x01, 0x40, 0x00, 0x31, 0xc0, 0x80, 0x00,
+ 0x0f, 0x20, 0x00, 0x01, 0x01, 0x10, 0x00, 0xc2, 0x7e, 0x08, 0x00, 0xa2,
+ 0xfe, 0x09, 0x00, 0x94, 0x0c, 0x0f, 0x00, 0x8c, 0x00, 0x0c, 0x00, 0x40,
+ 0x00, 0x1c, 0x00, 0x20, 0x00, 0x38, 0x03, 0x1e, 0x00, 0xfe, 0x01, 0x01,
+ 0x00, 0x8f, 0xe0, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x00, 0xfe, 0x1f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/mati2.xbm b/games/x11/xneko/bitmaps/mati2.xbm
new file mode 100644
index 0000000..41864ec
--- /dev/null
+++ b/games/x11/xneko/bitmaps/mati2.xbm
@@ -0,0 +1,14 @@
+#define mati2_width 32
+#define mati2_height 32
+static char mati2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x00, 0x28, 0x28, 0x00, 0x00, 0x48, 0x24, 0x00,
+ 0x00, 0x44, 0x44, 0x00, 0x00, 0x84, 0x42, 0x00, 0x00, 0x82, 0x83, 0x00,
+ 0x00, 0x02, 0x80, 0x00, 0x00, 0x22, 0x88, 0x00, 0x00, 0x22, 0x88, 0x00,
+ 0x00, 0x22, 0x88, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x3a, 0xb9, 0x00,
+ 0x00, 0x04, 0x40, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x70, 0x1c, 0x00,
+ 0x00, 0x40, 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x00, 0x08, 0x20, 0x00, 0x00, 0x0b, 0xa0, 0x01, 0x80, 0x0c, 0x61, 0x02,
+ 0x40, 0x18, 0x31, 0x04, 0x40, 0x10, 0x11, 0x04, 0xc0, 0x11, 0x11, 0x7f,
+ 0x60, 0x90, 0x13, 0x8c, 0xe0, 0xff, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/mati3.xbm b/games/x11/xneko/bitmaps/mati3.xbm
new file mode 100644
index 0000000..6087cf8
--- /dev/null
+++ b/games/x11/xneko/bitmaps/mati3.xbm
@@ -0,0 +1,14 @@
+#define mati3_width 32
+#define mati3_height 32
+static char mati3_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x10, 0x10, 0x00, 0x00, 0x28, 0x28, 0x00, 0x00, 0x48, 0x24, 0x00,
+ 0x00, 0x44, 0x44, 0x00, 0x00, 0x84, 0x42, 0x00, 0x00, 0x82, 0x83, 0x00,
+ 0x00, 0x3a, 0xb8, 0x00, 0x00, 0x42, 0x85, 0x00, 0x00, 0x92, 0x91, 0x00,
+ 0x00, 0x4e, 0xe2, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, 0x42, 0x82, 0x00,
+ 0x00, 0x44, 0x42, 0x00, 0x00, 0x88, 0x21, 0x00, 0x00, 0x70, 0x1c, 0x00,
+ 0x00, 0x40, 0x04, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00,
+ 0x00, 0x08, 0x20, 0x00, 0x00, 0x0b, 0xa0, 0x01, 0x80, 0x0c, 0x61, 0x02,
+ 0x40, 0x18, 0x31, 0x04, 0x40, 0x10, 0x11, 0x04, 0xc0, 0x11, 0x11, 0x7f,
+ 0x60, 0x90, 0x13, 0x8c, 0xe0, 0xff, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/right1.xbm b/games/x11/xneko/bitmaps/right1.xbm
new file mode 100644
index 0000000..b2538e0
--- /dev/null
+++ b/games/x11/xneko/bitmaps/right1.xbm
@@ -0,0 +1,14 @@
+#define right1_width 32
+#define right1_height 32
+static char right1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x70, 0x00, 0x00, 0x00, 0x8c, 0x01, 0x00, 0x00, 0x03, 0x06, 0x00,
+ 0x80, 0x00, 0x08, 0x00, 0x80, 0x00, 0x10, 0x00, 0x40, 0x00, 0x20, 0x30,
+ 0x20, 0x00, 0x20, 0x28, 0x10, 0x00, 0x40, 0x26, 0x48, 0x80, 0xc0, 0x11,
+ 0xc4, 0x00, 0x21, 0x10, 0xa2, 0x00, 0x01, 0x10, 0x92, 0x00, 0x02, 0x20,
+ 0x49, 0x00, 0x02, 0x48, 0x25, 0x00, 0x02, 0x48, 0x43, 0x00, 0xe1, 0x48,
+ 0x80, 0x00, 0x91, 0xc3, 0x80, 0xc0, 0x02, 0x80, 0x80, 0x79, 0x01, 0x40,
+ 0x80, 0x89, 0xc0, 0x20, 0xc0, 0x73, 0x70, 0x1f, 0xc0, 0x13, 0x3c, 0x00,
+ 0xc0, 0xf4, 0x1f, 0x00, 0x00, 0x1c, 0x0f, 0x00, 0x00, 0x18, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/right2.xbm b/games/x11/xneko/bitmaps/right2.xbm
new file mode 100644
index 0000000..d8b4dbe
--- /dev/null
+++ b/games/x11/xneko/bitmaps/right2.xbm
@@ -0,0 +1,14 @@
+#define right2_width 32
+#define right2_height 32
+static char right2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x07, 0x00, 0x00, 0x04, 0x09, 0x00, 0x00, 0x06, 0x19, 0x00, 0x00, 0x05,
+ 0x22, 0x00, 0x80, 0x04, 0x44, 0x00, 0x40, 0x04, 0x88, 0x00, 0x30, 0x0c,
+ 0x10, 0x03, 0x08, 0x10, 0x10, 0x1c, 0x0c, 0x24, 0x10, 0x60, 0x04, 0x24,
+ 0x08, 0x80, 0x02, 0x24, 0x08, 0x00, 0x03, 0x40, 0x08, 0x00, 0xc0, 0x43,
+ 0x08, 0x00, 0x00, 0x40, 0x08, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x1e,
+ 0x04, 0x10, 0x80, 0x01, 0x03, 0x0c, 0x80, 0x01, 0x81, 0x03, 0x00, 0x03,
+ 0xf9, 0x0f, 0x18, 0x06, 0xfd, 0xf9, 0x3f, 0x0c, 0x1f, 0x00, 0xfc, 0x18,
+ 0x0c, 0x00, 0xe0, 0x33, 0x00, 0x00, 0xc0, 0x1c, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/rtogi1.xbm b/games/x11/xneko/bitmaps/rtogi1.xbm
new file mode 100644
index 0000000..496c0cb
--- /dev/null
+++ b/games/x11/xneko/bitmaps/rtogi1.xbm
@@ -0,0 +1,14 @@
+#define rtogi1_width 32
+#define rtogi1_height 32
+static char rtogi1_bits[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02,
+ 0x00, 0x00, 0x20, 0xc2, 0x00, 0x00, 0x18, 0xec, 0x00, 0x00, 0x04, 0xf0,
+ 0x00, 0x00, 0x02, 0xe0, 0x00, 0x00, 0x02, 0xe4, 0x00, 0x00, 0x02, 0xe4,
+ 0x00, 0x00, 0x02, 0xb4, 0x00, 0x00, 0x02, 0x8c, 0x00, 0xf0, 0x05, 0x83,
+ 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x02, 0x00, 0xb0, 0x00, 0x01, 0x03, 0x1c,
+ 0x80, 0x00, 0x04, 0x0e, 0x40, 0x00, 0x08, 0x02, 0x40, 0x00, 0x10, 0x02,
+ 0x20, 0x00, 0x90, 0x01, 0x30, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x30, 0x00,
+ 0x04, 0x00, 0x38, 0x00, 0x62, 0xc0, 0x1c, 0x00, 0xb1, 0x80, 0x7f, 0x00,
+ 0x0e, 0x07, 0xf1, 0x00, 0x00, 0x08, 0xf0, 0x00, 0x00, 0xf8, 0x7f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/rtogi2.xbm b/games/x11/xneko/bitmaps/rtogi2.xbm
new file mode 100644
index 0000000..7255c4d
--- /dev/null
+++ b/games/x11/xneko/bitmaps/rtogi2.xbm
@@ -0,0 +1,14 @@
+#define rtogi2_width 32
+#define rtogi2_height 32
+static char rtogi2_bits[] = {
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x40, 0x02,
+ 0x00, 0x00, 0x20, 0x02, 0x00, 0x00, 0x18, 0x82, 0x00, 0x00, 0x04, 0x8c,
+ 0x00, 0x00, 0x02, 0x90, 0x00, 0x00, 0x02, 0xa4, 0x00, 0x00, 0x02, 0xa4,
+ 0x00, 0x00, 0x02, 0xc4, 0x00, 0x00, 0x82, 0xc1, 0x00, 0xf0, 0x05, 0xa6,
+ 0x00, 0x0c, 0x00, 0xa0, 0x00, 0x02, 0x80, 0x97, 0x00, 0x01, 0x03, 0x8c,
+ 0x80, 0x00, 0x04, 0xf0, 0x43, 0x00, 0x08, 0x80, 0x45, 0x00, 0x10, 0x7e,
+ 0x29, 0x00, 0x90, 0x7f, 0x31, 0x00, 0xf0, 0x30, 0x02, 0x00, 0x30, 0x00,
+ 0x04, 0x00, 0x38, 0x00, 0x78, 0xc0, 0x1c, 0x00, 0x80, 0x80, 0x7f, 0x00,
+ 0x00, 0x07, 0xf1, 0x00, 0x00, 0x08, 0xf0, 0x00, 0x00, 0xf8, 0x7f, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/sleep1.xbm b/games/x11/xneko/bitmaps/sleep1.xbm
new file mode 100644
index 0000000..9cda30c
--- /dev/null
+++ b/games/x11/xneko/bitmaps/sleep1.xbm
@@ -0,0 +1,14 @@
+#define sleep1_width 32
+#define sleep1_height 32
+static char sleep1_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x1f, 0x00, 0x80, 0x00, 0x08, 0x00,
+ 0xc0, 0x1f, 0x04, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x41, 0x02,
+ 0x00, 0x80, 0x22, 0x02, 0x00, 0x40, 0x3e, 0x06, 0x00, 0x38, 0x14, 0x0a,
+ 0x00, 0x26, 0x18, 0x14, 0x00, 0x11, 0x00, 0x18, 0x00, 0x11, 0x00, 0x18,
+ 0x80, 0x10, 0x00, 0x38, 0x40, 0x10, 0x00, 0x2c, 0x40, 0xa0, 0x01, 0x2b,
+ 0x40, 0x20, 0x8e, 0x68, 0x40, 0x20, 0x10, 0x54, 0x40, 0x40, 0x40, 0x5b,
+ 0x80, 0x80, 0xff, 0x4c, 0x00, 0x3f, 0xf0, 0x64, 0x00, 0xe0, 0x9f, 0x3f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/sleep2.xbm b/games/x11/xneko/bitmaps/sleep2.xbm
new file mode 100644
index 0000000..f1a217c
--- /dev/null
+++ b/games/x11/xneko/bitmaps/sleep2.xbm
@@ -0,0 +1,14 @@
+#define sleep2_width 32
+#define sleep2_height 32
+static char sleep2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x3f, 0x00, 0x00, 0x00, 0x10, 0x3c, 0x00, 0x00, 0x0c, 0x10, 0x00,
+ 0x00, 0x04, 0x88, 0x01, 0x00, 0x3f, 0x7c, 0x01, 0x00, 0x80, 0x60, 0x01,
+ 0x00, 0xc0, 0x21, 0x02, 0x00, 0x78, 0x3f, 0x06, 0x00, 0x26, 0x12, 0x0a,
+ 0x00, 0x21, 0x0c, 0x14, 0x80, 0x10, 0x00, 0x18, 0x80, 0x10, 0x00, 0x18,
+ 0x80, 0x10, 0x00, 0x38, 0x40, 0x10, 0x00, 0x2a, 0x40, 0xa0, 0x03, 0x29,
+ 0x40, 0x20, 0x8c, 0x68, 0x40, 0x20, 0x10, 0x54, 0x40, 0x40, 0x40, 0x5b,
+ 0x80, 0x80, 0xff, 0x4c, 0x00, 0x3f, 0xf0, 0x64, 0x00, 0xe0, 0x9f, 0x3f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/space.xbm b/games/x11/xneko/bitmaps/space.xbm
new file mode 100644
index 0000000..2ebb658
--- /dev/null
+++ b/games/x11/xneko/bitmaps/space.xbm
@@ -0,0 +1,14 @@
+#define space_width 32
+#define space_height 32
+static char space_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/up1.xbm b/games/x11/xneko/bitmaps/up1.xbm
new file mode 100644
index 0000000..2011ac7
--- /dev/null
+++ b/games/x11/xneko/bitmaps/up1.xbm
@@ -0,0 +1,14 @@
+#define up1_width 32
+#define up1_height 32
+static char up1_bits[] = {
+ 0x00, 0xc0, 0x03, 0x00, 0x00, 0x3e, 0x7c, 0x00, 0x00, 0x08, 0x10, 0x00,
+ 0x00, 0x26, 0x64, 0x00, 0x00, 0x22, 0x44, 0x00, 0x00, 0x22, 0x44, 0x00,
+ 0x00, 0x01, 0x80, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x01, 0x80, 0x00,
+ 0x00, 0x22, 0x42, 0x00, 0x00, 0x1e, 0x7c, 0x00, 0x00, 0x06, 0x60, 0x00,
+ 0x80, 0x3f, 0xfc, 0x01, 0xc0, 0x07, 0xe0, 0x02, 0x40, 0x02, 0x40, 0x02,
+ 0x40, 0x02, 0x40, 0x02, 0x40, 0x01, 0x80, 0x02, 0x40, 0x00, 0x00, 0x02,
+ 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01,
+ 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00, 0x00, 0x06, 0x60, 0x00,
+ 0x00, 0x78, 0x1e, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00,
+ 0x00, 0x40, 0x02, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x80, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/up2.xbm b/games/x11/xneko/bitmaps/up2.xbm
new file mode 100644
index 0000000..a8619d5
--- /dev/null
+++ b/games/x11/xneko/bitmaps/up2.xbm
@@ -0,0 +1,14 @@
+#define up2_width 32
+#define up2_height 32
+static char up2_bits[] = {
+ 0x00, 0xc0, 0x03, 0x00, 0x80, 0x3f, 0xfc, 0x01, 0x40, 0x0b, 0xd0, 0x02,
+ 0x40, 0x26, 0x64, 0x02, 0x40, 0x22, 0x44, 0x02, 0x40, 0x22, 0x44, 0x02,
+ 0x40, 0x01, 0x80, 0x02, 0x40, 0x1f, 0xf8, 0x02, 0x40, 0x01, 0x80, 0x02,
+ 0x40, 0x22, 0x42, 0x02, 0x80, 0x1e, 0x7c, 0x01, 0x80, 0x04, 0x20, 0x01,
+ 0x80, 0x38, 0x1c, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x00,
+ 0x00, 0x0d, 0xb0, 0x00, 0x00, 0x83, 0xc1, 0x00, 0x00, 0x41, 0x82, 0x00,
+ 0x80, 0x40, 0x02, 0x01, 0x80, 0x40, 0x02, 0x01, 0x80, 0x40, 0x02, 0x01,
+ 0x80, 0x40, 0x02, 0x01, 0x80, 0x40, 0x02, 0x01, 0x80, 0x00, 0x00, 0x01,
+ 0x80, 0xc0, 0x03, 0x01, 0x00, 0x41, 0x82, 0x00, 0x00, 0x21, 0x84, 0x00,
+ 0x00, 0x11, 0x88, 0x00, 0x00, 0x09, 0x90, 0x00, 0x00, 0x06, 0x60, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/upleft1.xbm b/games/x11/xneko/bitmaps/upleft1.xbm
new file mode 100644
index 0000000..62ae6c7
--- /dev/null
+++ b/games/x11/xneko/bitmaps/upleft1.xbm
@@ -0,0 +1,14 @@
+#define upleft1_width 32
+#define upleft1_height 32
+static char upleft1_bits[] = {
+ 0x00, 0x00, 0x07, 0x00, 0x80, 0xff, 0x04, 0x00, 0x40, 0x78, 0x04, 0x00,
+ 0xe0, 0x25, 0x04, 0x00, 0x36, 0x22, 0x04, 0x00, 0x18, 0x21, 0x04, 0x00,
+ 0x10, 0x20, 0x04, 0x00, 0x10, 0x00, 0x04, 0x00, 0x10, 0x00, 0x3e, 0x00,
+ 0x20, 0x00, 0xc1, 0x01, 0x20, 0x00, 0x00, 0x02, 0xc0, 0x00, 0x00, 0x04,
+ 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0x01, 0x00, 0x10,
+ 0x00, 0x01, 0x00, 0x20, 0x00, 0xc3, 0x00, 0x20, 0x00, 0x22, 0x00, 0x20,
+ 0x00, 0x32, 0x00, 0x20, 0x00, 0x22, 0x00, 0x30, 0x00, 0x24, 0x00, 0x30,
+ 0x00, 0x64, 0x00, 0x20, 0x00, 0xd8, 0xc0, 0x64, 0x00, 0xd0, 0xc1, 0x4f,
+ 0x00, 0xf0, 0xc3, 0x9b, 0x00, 0x70, 0xf0, 0x93, 0x00, 0x10, 0x1e, 0x60,
+ 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/upleft2.xbm b/games/x11/xneko/bitmaps/upleft2.xbm
new file mode 100644
index 0000000..0f3ddd3
--- /dev/null
+++ b/games/x11/xneko/bitmaps/upleft2.xbm
@@ -0,0 +1,14 @@
+#define upleft2_width 32
+#define upleft2_height 32
+static char upleft2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
+ 0x80, 0xb0, 0x01, 0x00, 0x40, 0x07, 0x3e, 0x00, 0x60, 0xc0, 0x20, 0x00,
+ 0x58, 0xb8, 0x10, 0x00, 0x40, 0x88, 0x10, 0x00, 0x5e, 0x80, 0x08, 0x00,
+ 0xf2, 0x80, 0x08, 0x00, 0xc6, 0x00, 0x14, 0x00, 0x8c, 0x03, 0x24, 0x00,
+ 0x18, 0x00, 0x42, 0x0e, 0x30, 0x50, 0x81, 0x09, 0x40, 0x00, 0x00, 0x09,
+ 0x80, 0x01, 0x80, 0x04, 0x00, 0x02, 0x80, 0x0c, 0x00, 0x04, 0x40, 0x0a,
+ 0x00, 0x08, 0x00, 0x32, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x20, 0x40,
+ 0x00, 0x10, 0x40, 0x40, 0x00, 0x10, 0x80, 0x40, 0x00, 0x20, 0x80, 0x87,
+ 0x00, 0x20, 0x80, 0x88, 0x00, 0x40, 0x80, 0x90, 0x00, 0x80, 0x8f, 0x90,
+ 0x00, 0x00, 0x90, 0xa0, 0x00, 0x00, 0x90, 0xc0, 0x00, 0x00, 0x90, 0x00,
+ 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x60, 0x00};
diff --git a/games/x11/xneko/bitmaps/upright1.xbm b/games/x11/xneko/bitmaps/upright1.xbm
new file mode 100644
index 0000000..c01d840
--- /dev/null
+++ b/games/x11/xneko/bitmaps/upright1.xbm
@@ -0,0 +1,14 @@
+#define upright1_width 32
+#define upright1_height 32
+static char upright1_bits[] = {
+ 0x00, 0xe0, 0x00, 0x00, 0x00, 0x20, 0xff, 0x01, 0x00, 0x20, 0x1e, 0x02,
+ 0x00, 0x20, 0xa4, 0x07, 0x00, 0x20, 0x44, 0x6c, 0x00, 0x20, 0x84, 0x18,
+ 0x00, 0x20, 0x04, 0x08, 0x00, 0x20, 0x00, 0x08, 0x00, 0x7c, 0x00, 0x08,
+ 0x80, 0x83, 0x00, 0x04, 0x40, 0x00, 0x00, 0x04, 0x20, 0x00, 0x00, 0x03,
+ 0x10, 0x00, 0x80, 0x00, 0x10, 0x00, 0x80, 0x00, 0x08, 0x00, 0x80, 0x00,
+ 0x04, 0x00, 0x80, 0x00, 0x04, 0x00, 0xc3, 0x00, 0x04, 0x00, 0x44, 0x00,
+ 0x04, 0x00, 0x4c, 0x00, 0x0c, 0x00, 0x44, 0x00, 0x0c, 0x00, 0x24, 0x00,
+ 0x04, 0x00, 0x26, 0x00, 0x26, 0x03, 0x1b, 0x00, 0xf2, 0x83, 0x0b, 0x00,
+ 0xd9, 0xc3, 0x0f, 0x00, 0xc9, 0x0f, 0x0e, 0x00, 0x06, 0x78, 0x08, 0x00,
+ 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/upright2.xbm b/games/x11/xneko/bitmaps/upright2.xbm
new file mode 100644
index 0000000..4c43d25
--- /dev/null
+++ b/games/x11/xneko/bitmaps/upright2.xbm
@@ -0,0 +1,14 @@
+#define upright2_width 32
+#define upright2_height 32
+static char upright2_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
+ 0x00, 0x80, 0x0d, 0x01, 0x00, 0x7c, 0xe0, 0x02, 0x00, 0x04, 0x03, 0x06,
+ 0x00, 0x08, 0x1d, 0x1a, 0x00, 0x08, 0x11, 0x02, 0x00, 0x10, 0x01, 0x7a,
+ 0x00, 0x10, 0x01, 0x4f, 0x00, 0x28, 0x00, 0x63, 0x00, 0x24, 0xc0, 0x31,
+ 0x70, 0x42, 0x00, 0x18, 0x90, 0x81, 0x0a, 0x0c, 0x90, 0x00, 0x00, 0x02,
+ 0x20, 0x01, 0x80, 0x01, 0x30, 0x01, 0x40, 0x00, 0x50, 0x02, 0x20, 0x00,
+ 0x4c, 0x00, 0x10, 0x00, 0x02, 0x00, 0x08, 0x00, 0x02, 0x04, 0x08, 0x00,
+ 0x02, 0x02, 0x08, 0x00, 0x02, 0x01, 0x08, 0x00, 0xe1, 0x01, 0x04, 0x00,
+ 0x11, 0x01, 0x04, 0x00, 0x09, 0x01, 0x02, 0x00, 0x09, 0xf1, 0x01, 0x00,
+ 0x05, 0x09, 0x00, 0x00, 0x03, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/utogi1.xbm b/games/x11/xneko/bitmaps/utogi1.xbm
new file mode 100644
index 0000000..ace1af9
--- /dev/null
+++ b/games/x11/xneko/bitmaps/utogi1.xbm
@@ -0,0 +1,14 @@
+#define utogi1_width 32
+#define utogi1_height 32
+static char utogi1_bits[] = {
+ 0x00, 0x2a, 0x32, 0x00, 0x00, 0x2a, 0x4a, 0x00, 0x80, 0xeb, 0x4b, 0x00,
+ 0x00, 0x3e, 0xfc, 0x00, 0x00, 0x0a, 0x90, 0x00, 0x00, 0x26, 0xa4, 0x00,
+ 0x00, 0x23, 0xc4, 0x00, 0x00, 0x23, 0xc4, 0x00, 0x00, 0x01, 0x80, 0x00,
+ 0x80, 0x1f, 0xf8, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00, 0x27, 0x62, 0x00,
+ 0x00, 0x1d, 0x5c, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x1e, 0x78, 0x00,
+ 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xb0, 0x00, 0x00, 0x0d,
+ 0xe8, 0x01, 0x80, 0x13, 0x08, 0x03, 0xc0, 0x10, 0x10, 0x00, 0x00, 0x08,
+ 0xe0, 0x78, 0x1e, 0x07, 0x00, 0x47, 0xe2, 0x00, 0x00, 0x20, 0x02, 0x00,
+ 0x00, 0x10, 0x01, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/bitmaps/utogi2.xbm b/games/x11/xneko/bitmaps/utogi2.xbm
new file mode 100644
index 0000000..08adba4
--- /dev/null
+++ b/games/x11/xneko/bitmaps/utogi2.xbm
@@ -0,0 +1,14 @@
+#define utogi2_width 32
+#define utogi2_height 32
+static char utogi2_bits[] = {
+ 0x00, 0x26, 0x2a, 0x00, 0x00, 0x29, 0x2a, 0x00, 0x00, 0xe9, 0xeb, 0x00,
+ 0x00, 0x3d, 0x3c, 0x00, 0x00, 0x09, 0x30, 0x00, 0x00, 0x25, 0x44, 0x00,
+ 0x00, 0x23, 0x44, 0x00, 0x00, 0x23, 0x44, 0x00, 0x00, 0x01, 0x80, 0x00,
+ 0x80, 0x1f, 0xf8, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x27, 0x62, 0x00,
+ 0x00, 0x1d, 0x5c, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x1e, 0x78, 0x00,
+ 0x00, 0x02, 0x40, 0x00, 0x00, 0x01, 0x80, 0x00, 0x80, 0x00, 0x00, 0x01,
+ 0x80, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0xb0, 0x00, 0x00, 0x0d,
+ 0xe8, 0x01, 0x80, 0x13, 0x08, 0x03, 0xc0, 0x10, 0x10, 0x00, 0x00, 0x08,
+ 0xe0, 0x78, 0x1e, 0x07, 0x00, 0x47, 0xe2, 0x00, 0x00, 0x40, 0x04, 0x00,
+ 0x00, 0x80, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
diff --git a/games/x11/xneko/xneko.6 b/games/x11/xneko/xneko.6
new file mode 100644
index 0000000..d9567b8
--- /dev/null
+++ b/games/x11/xneko/xneko.6
@@ -0,0 +1,84 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)xneko.6 8.1 (Berkeley) 5/31/93
+.\"
+.TH XNEKO 6 "May 31, 1993"
+.SH NAME
+xneko \- cat-and-mouse chase in an X window
+.SH SYNOPSIS
+xneko [
+.B -display
+.I display
+] [
+.B -geometry
+.I geometry
+] [
+.B -title
+.I title
+] [
+.B -name
+.I name
+] [
+.B -iconic
+] [
+.B -speed
+.I speed
+] [
+.B -time
+.I time
+] [
+.B -help
+]
+.SH DESCRIPTION
+.I Xneko
+displays a window in which a cat chases your ``mouse'' cursor.
+.PP
+All options except the last three above behave in the standard manner
+for X applications (see
+.IR X (1)).
+The
+.B -speed
+option controls the speed of the cat (the default is 16).
+The
+.B -time
+option controls the interval (in microseconds) between updates of the
+.I xneko
+window (the default is 125000).
+The
+.B -help
+option provides a usage message and exits.
+.PP
+The word ``neko'' means ``cat'' in Japanese.
+.SH SEE ALSO
+X(1)
+.SH AUTHOR
+Masayuki Koba, 1990
diff --git a/games/x11/xneko/xneko.c b/games/x11/xneko/xneko.c
new file mode 100644
index 0000000..731e6c8
--- /dev/null
+++ b/games/x11/xneko/xneko.c
@@ -0,0 +1,1762 @@
+/*-
+ * Copyright (c) 1991, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef lint
+static char copyright[] =
+"@(#) Copyright (c) 1991, 1993\n\
+ The Regents of the University of California. All rights reserved.\n";
+#endif /* not lint */
+
+#ifndef lint
+static char sccsid[] = "@(#)xneko.c 8.1 (Berkeley) 5/31/93";
+#endif /* not lint */
+
+/*--------------------------------------------------------------
+ *
+ * xneko - X11 G-
+ *
+ * Original Writer: Masayuki Koba
+ * Programmed by Masayuki Koba, 1990
+ *
+ *--------------------------------------------------------------
+ *
+ *!!Introduction:
+ *
+ *!!!!K\@(#)xneko.c 8.1m%0%i%`$O Macintosh $N5/31/939%/%"%/%;%5%j!< "neko" $N
+ *!!F0:n$r X11 $G%^%M$?$b$N$G$9!#
+ *
+ *!!!!Macintosh "neko" $N=(0o$J5/31/936%$%s$K7I0U$rI=$7$D$D!"$3$N
+ *!!@(#)xneko.c 8.1m%0%i%`$r3'$5$s$KJ{$2$^$9!#
+ *
+ *--------------------------------------------------------------
+ *
+ *!!Special Thanks to
+ *
+ * toshi-w !D!!Macintosh neko $N>R2p<T
+ * shio-m !D!!!VX11 $N neko $,M_$7$$!*!W$H%?%@$r$3$M$??M
+ * disco !D!!X11 SCCS/s.xneko.c/%K%+%k!&%"8.1P%$%6!<
+ *
+ * HOMY !D!!/usr/src/games/xneko/SCCS/s.xneko.c0;XE&<T
+ * BNS !D!!J#?t@(#)xneko.c 8.1l!<%sBP1~May 31, 1993C%ADs6!<T
+ *
+ * "xneko" Presented by Masayuki Koba (masa-k).
+ *
+ *--------------------------------------------------------------
+ *
+ *!!Manifest:
+ *
+ *!!!!K\@(#)xneko.c 8.1m%0%i%`$O Public Domain Software $G$9!#E>:\!&2~NI$O
+ *!!<+M3$K9T$C$F2<$5$$!#
+ *
+ *!!!!$J$*!"86:n<T$O!"K\@(#)xneko.c 8.1m%0%i%`$r;HMQ$9$k$3$H$K$h$C$F@8$8$?
+ *!!>c32$dITMx1W$K$D$$$F$$$C$5$$@UG$$r;}$A$^$;$s!#
+ *
+ *--------------------------------------------------------------
+ *
+ *!!Bugs:
+ *
+ *!!!!!J#1!KX11 $N .Xdefaults $N@_Dj$r$^$k$C$-$jL5;k$7$F$$$^$9!#
+ *
+ *!!!!!J#2!KG-$NF0:n$,;~4V$HF14|$7$F$$$k$?$a!"%^%&%9$N0\F0>pJs
+ *!!!!!!!!$r%]!<%j%s%0$7$F$$$^$9!#=>$C$F!"%^%&%9$,A4$/F0:n$7$F
+ *!!!!!!!!$$$J$$;~$OL5BL$J%^%&%9:BI8FI$_<h$j$r9T$C$F$7$^$$$^$9!#
+ *
+ *!!!!!J#3!K%&%#%s8.1&$,%"%$%3%s2=$5$l$F$b!"$7$i$s$W$j$GIA2h$7
+ *!!!!!!!!$D$E$1$^$9!#$3$NItJ,$O!"8=:_$N%&%#%s8.1&$N>uBV$r@(#) xneko.c 8.1@(#)'
+ *!!!!!!!!70/$7$F!"%"%$%3%s2=$5$l$F$$$k;~$O40A4$K%$s%HBT$A
+ *!!!!!!!!$K$J$k$h$&$K=q$-JQ$($J$1$l$P$J$j$^$;$s!# ($=$s$J$3$H!"
+ *!!!!!!!!$G$-$k$N$+$J$!!#X10 $G$O$G$-$^$7$?$,!#)
+ *
+ *!!!!!J#4!K%j%5%$%:8e$N%&%#%s8.1&$,6KC<$K>.$5$/$J$C$?;~$NF0:n
+ *!!!!!!!!$OJ]>Z$G$-$^$;$s!#
+ *
+ *!!!!!J#5!KK\Mh$J$i$P3NJ]$7$?%&%#%s8.1&$d Pixmap $O@(#)xneko.c 8.1m%0%i%`
+ *!!!!!!!!=*N;;~$K2rJ|$9$kI,MW$,$"$j$^$9$,!"K\@(#)xneko.c 8.1m%0%i%`$O$=$N
+ *!!!!!!!!$X$s$r%5%\$C$F$*$j!"Hs>o$K$*9T57$,0-$/$J$C$F$$$^$9!#
+ *!!!!!!!!IaDL$O exit() ;~$K%7%9SCCS/s.xneko.c`$,M>J,$J%j%=!<%9$r2rJ|$7$F
+ *!!!!!!!!$/$l$^$9$,!"#O#S$K/usr/src/games/xneko/SCCS/s.xneko.c0$,$"$k>l9g$O xneko $r2?EY$b5/
+ *!!!!!!!!F0$9$k$H!"$=$N$&$A%9%o82WNN0h$,ITB-$7$F$7$^$&$3$H$K
+ *!!!!!!!!$J$k$+$b$7$l$^$;$s!#
+ *
+ *!!!!!J#6!K;~4V$KF14|$7$FI,$:IA2h=hM}$r<B9T$9$k$?$a!"0BDj>uBV
+ *!!!!!!!!$G$b Idle 90 !A 95% $H$J$j!"%7%9SCCS/s.xneko.c`#C#P#U$r 5 !A 10%
+ *!!!!!!!!Dx>CHq$7$^$9!#!Jxtachos $GD4$Y$^$7$?!#!K
+ *
+ *--------------------------------------------------------------
+ *
+ *!!System (Machine):
+ *
+ *!!!!K\@(#)xneko.c 8.1m%0%i%`$NF0:n$r3NG'$7$?%7%9SCCS/s.xneko.c`9=@.$O0J2<$NDL$j!#
+ *
+ * !&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D
+ * !!NEWS-OS 3.2a (UNIX 4.3BSD)!"X11 Release 2
+ *
+ * !&NWS-1750!"NWS-1720 (NEWS)!"NWP-512D
+ * !!NEWS-OS 3.3 (UNIX 4.3BSD)!"X11 Release 3
+ *
+ * !&Sun 3!"X11 Release 4
+ *
+ * !&LUNA!"X11 Release 3
+ *
+ * !&DECstation 3100!"ULTRIX!"X11
+ *
+ *--------------------------------------------------------------*/
+
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/keysym.h>
+
+#include <stdio.h>
+
+#include <signal.h>
+#include <math.h>
+#include <sys/time.h>
+
+
+#ifndef lint
+static char
+ rcsid[] = "$Header: /afs/athena.mit.edu/user/j/jik/sipbsrc/src/xneko/RCS/xneko.c,v 1.2 90/09/01 23:40:01 jik Exp $";
+static char WriterMessage[] = "xneko: Programmed by Masayuki Koba, 1990";
+#endif
+
+
+/*
+ * X11 G- 0C5/31/93^129W18:45:36!%$%k0lMw!'
+ *
+ * "icon.xbm" !D!!%"%$%3%s
+ * "cursor.xbm" !D!!%+!<%=%k
+ * "cursor_mask.xbm" !D!!%+!<%=%k!J%^%9%/!K
+ *
+ * "space.xbm" !D!!%9%Z!<%9
+ *
+ * "mati2.xbm" !D!!BT$A#2
+ * "jare2.xbm" !D!!$8$c$l#2
+ * "kaki1.xbm" !D!!A_$-#1
+ * "kaki2.xbm" !D!!A_$-#2
+ * "mati3.xbm" !D!!BT$A#3!J$"$/$S!K
+ * "sleep1.xbm" !D!!?2$k#1
+ * "sleep2.xbm" !D!!?2$k#2
+ *
+ * "awake.xbm" !D!!L\3P$a
+ *
+ * "up1.xbm" !D!!>e#1
+ * "up2.xbm" !D!!>e#2
+ * "down1.xbm" !D!!2<#1
+ * "down2.xbm" !D!!2<#2
+ * "left1.xbm" !D!!:8#1
+ * "left2.xbm" !D!!:8#2
+ * "right1.xbm" !D!!1&#1
+ * "right2.xbm" !D!!1&#2
+ * "upleft1.xbm" !D!!:8>e#1
+ * "upleft2.xbm" !D!!:8>e#2
+ * "upright1.xbm" !D!!1&>e#1
+ * "upright2.xbm" !D!!1&>e#2
+ * "dwleft1.xbm" !D!!:82<#1
+ * "dwleft2.xbm" !D!!:82<#2
+ * "dwright1.xbm" !D!!1&2<#1
+ * "dwright2.xbm" !D!!1&2<#2
+ *
+ * "utogi1.xbm" !D!!>eKa$.#1
+ * "utogi2.xbm" !D!!>eKa$.#2
+ * "dtogi1.xbm" !D!!2<Ka$.#1
+ * "dtogi2.xbm" !D!!2<Ka$.#2
+ * "ltogi1.xbm" !D!!:8Ka$.#1
+ * "ltogi2.xbm" !D!!:8Ka$.#2
+ * "rtogi1.xbm" !D!!1&Ka$.#1
+ * "rtogi2.xbm" !D!!1&Ka$.#2
+ *
+ * !!$3$l$i$N18:45:36!%$%k$O bitmap %3%^%s%I$GJT=82DG=$G$9!#
+ *
+ * (bitmap size "* 32x32 ... Macintosh ICON resource size.)
+ *
+ */
+
+
+#include "bitmaps/icon.xbm"
+#include "bitmaps/cursor.xbm"
+#include "bitmaps/cursor_mask.xbm"
+
+#include "bitmaps/space.xbm"
+
+#include "bitmaps/mati2.xbm"
+#include "bitmaps/jare2.xbm"
+#include "bitmaps/kaki1.xbm"
+#include "bitmaps/kaki2.xbm"
+#include "bitmaps/mati3.xbm"
+#include "bitmaps/sleep1.xbm"
+#include "bitmaps/sleep2.xbm"
+
+#include "bitmaps/awake.xbm"
+
+#include "bitmaps/up1.xbm"
+#include "bitmaps/up2.xbm"
+#include "bitmaps/down1.xbm"
+#include "bitmaps/down2.xbm"
+#include "bitmaps/left1.xbm"
+#include "bitmaps/left2.xbm"
+#include "bitmaps/right1.xbm"
+#include "bitmaps/right2.xbm"
+#include "bitmaps/upright1.xbm"
+#include "bitmaps/upright2.xbm"
+#include "bitmaps/upleft1.xbm"
+#include "bitmaps/upleft2.xbm"
+#include "bitmaps/dwleft1.xbm"
+#include "bitmaps/dwleft2.xbm"
+#include "bitmaps/dwright1.xbm"
+#include "bitmaps/dwright2.xbm"
+
+#include "bitmaps/utogi1.xbm"
+#include "bitmaps/utogi2.xbm"
+#include "bitmaps/dtogi1.xbm"
+#include "bitmaps/dtogi2.xbm"
+#include "bitmaps/ltogi1.xbm"
+#include "bitmaps/ltogi2.xbm"
+#include "bitmaps/rtogi1.xbm"
+#include "bitmaps/rtogi2.xbm"
+
+
+/*
+ * Dj?tDj5A
+ */
+
+#define BITMAP_WIDTH 32 /* #1%-%c%i%/%?$NI} (18:45:53/%;%k) */
+#define BITMAP_HEIGHT 32 /* #1%-%c%i%/%?$N9b$5 (18:45:53/%;%k) */
+
+#define WINDOW_WIDTH 320 /* %&%#%s8.1&$NI} (18:45:53/%;%k) */
+#define WINDOW_HEIGHT 256 /* %&%#%s8.1&$N9b$5 (18:45:53/%;%k) */
+
+#define DEFAULT_BORDER 2 /* %\!<%@!<%5%$%: */
+
+#define DEFAULT_WIN_X 1 /* %&%#%s8.1&@8@.#X:BI8 */
+#define DEFAULT_WIN_Y 1 /* %&%#%s8.1&@8@.#Y:BI8 */
+
+#define AVAIL_KEYBUF 255
+
+#define EVENT_MASK1 ( KeyPressMask | StructureNotifyMask )
+
+#define EVENT_MASK2 ( KeyPressMask | \
+ ExposureMask | \
+ StructureNotifyMask )
+
+#define MAX_TICK 9999 /* Odd Only! */
+
+#define INTERVAL 125000L /* %$%s%?!</usr/src/games/xneko/SCCS/s.xneko.ck%?%$%` */
+
+#define NEKO_SPEED 16
+
+#define IDLE_SPACE 6
+
+#define NORMAL_STATE 1
+#define DEBUG_LIST 2
+#define DEBUG_MOVE 3
+
+/* G-$N>uBVDj?t */
+
+#define NEKO_STOP 0 /* N)$A;_$^$C$? */
+#define NEKO_JARE 1 /* 4i$r@v$C$F$$$k */
+#define NEKO_KAKI 2 /* F,$rA_$$$F$$$k */
+#define NEKO_AKUBI 3 /* $"$/$S$r$7$F$$$k */
+#define NEKO_SLEEP 4 /* ?2$F$7$^$C$? */
+#define NEKO_AWAKE 5 /* L\$,3P$a$? */
+#define NEKO_U_MOVE 6 /* >e$K0\F0Cf */
+#define NEKO_D_MOVE 7 /* 2<$K0\F0Cf */
+#define NEKO_L_MOVE 8 /* :8$K0\F0Cf */
+#define NEKO_R_MOVE 9 /* 1&$K0\F0Cf */
+#define NEKO_UL_MOVE 10 /* :8>e$K0\F0Cf */
+#define NEKO_UR_MOVE 11 /* 1&>e$K0\F0Cf */
+#define NEKO_DL_MOVE 12 /* :82<$K0\F0Cf */
+#define NEKO_DR_MOVE 13 /* 1&2<$K0\F0Cf */
+#define NEKO_U_TOGI 14 /* >e$NJI$r0z$CA_$$$F$$$k */
+#define NEKO_D_TOGI 15 /* 2<$NJI$r0z$CA_$$$F$$$k */
+#define NEKO_L_TOGI 16 /* :8$NJI$r0z$CA_$$$F$$$k */
+#define NEKO_R_TOGI 17 /* 1&$NJI$r0z$CA_$$$F$$$k */
+
+/* G-$N%"%K%a!<%7%g%s7+$jJV$72s?t */
+
+#define NEKO_STOP_TIME 4
+#define NEKO_JARE_TIME 10
+#define NEKO_KAKI_TIME 4
+#define NEKO_AKUBI_TIME 3
+#define NEKO_AWAKE_TIME 3
+#define NEKO_TOGI_TIME 10
+
+#define PI_PER8 ((double)3.1415926535/(double)8)
+
+#define DIRNAMELEN 255
+
+
+/*
+ * %0%m!</usr/src/games/xneko/SCCS/s.xneko.ckJQ?t
+ */
+
+static char *ProgramName; /* %3%^%s%IL>>N */
+
+Display *theDisplay;
+int theScreen;
+unsigned int theDepth;
+unsigned long theBlackPixel;
+unsigned long theWhitePixel;
+Window theWindow;
+Cursor theCursor;
+
+static unsigned int WindowWidth;
+static unsigned int WindowHeight;
+
+static int WindowPointX;
+static int WindowPointY;
+
+static unsigned int BorderWidth = DEFAULT_BORDER;
+
+long IntervalTime = INTERVAL;
+
+int EventState; /* %$s%H=hM}MQ >uBVJQ?t */
+
+int NekoTickCount; /* G-F0:n%+%&%s%? */
+int NekoStateCount; /* G-F10l>uBV%+%&%s%? */
+int NekoState; /* G-$N>uBV */
+
+int MouseX; /* %^%&%9#X:BI8 */
+int MouseY; /* %^%&%9#Y:BI8 */
+
+int PrevMouseX = 0; /* D>A0$N%^%&%9#X:BI8 */
+int PrevMouseY = 0; /* D>A0$N%^%&%9#Y:BI8 */
+
+int NekoX; /* G-#X:BI8 */
+int NekoY; /* G-#Y:BI8 */
+
+int NekoMoveDx; /* G-0\F05wN%#X */
+int NekoMoveDy; /* G-0\F05wN%#Y */
+
+int NekoLastX; /* G-:G=*IA2h#X:BI8 */
+int NekoLastY; /* G-:G=*IA2h#Y:BI8 */
+GC NekoLastGC; /* G-:G=*IA2h GC */
+
+double NekoSpeed = (double)NEKO_SPEED;
+
+double SinPiPer8Times3; /* sin( #3&P!?#8 ) */
+double SinPiPer8; /* sin( &P!?#8 ) */
+
+Pixmap SpaceXbm;
+
+Pixmap Mati2Xbm;
+Pixmap Jare2Xbm;
+Pixmap Kaki1Xbm;
+Pixmap Kaki2Xbm;
+Pixmap Mati3Xbm;
+Pixmap Sleep1Xbm;
+Pixmap Sleep2Xbm;
+
+Pixmap AwakeXbm;
+
+Pixmap Up1Xbm;
+Pixmap Up2Xbm;
+Pixmap Down1Xbm;
+Pixmap Down2Xbm;
+Pixmap Left1Xbm;
+Pixmap Left2Xbm;
+Pixmap Right1Xbm;
+Pixmap Right2Xbm;
+Pixmap UpLeft1Xbm;
+Pixmap UpLeft2Xbm;
+Pixmap UpRight1Xbm;
+Pixmap UpRight2Xbm;
+Pixmap DownLeft1Xbm;
+Pixmap DownLeft2Xbm;
+Pixmap DownRight1Xbm;
+Pixmap DownRight2Xbm;
+
+Pixmap UpTogi1Xbm;
+Pixmap UpTogi2Xbm;
+Pixmap DownTogi1Xbm;
+Pixmap DownTogi2Xbm;
+Pixmap LeftTogi1Xbm;
+Pixmap LeftTogi2Xbm;
+Pixmap RightTogi1Xbm;
+Pixmap RightTogi2Xbm;
+
+GC SpaceGC;
+
+GC Mati2GC;
+GC Jare2GC;
+GC Kaki1GC;
+GC Kaki2GC;
+GC Mati3GC;
+GC Sleep1GC;
+GC Sleep2GC;
+
+GC AwakeGC;
+
+GC Up1GC;
+GC Up2GC;
+GC Down1GC;
+GC Down2GC;
+GC Left1GC;
+GC Left2GC;
+GC Right1GC;
+GC Right2GC;
+GC UpLeft1GC;
+GC UpLeft2GC;
+GC UpRight1GC;
+GC UpRight2GC;
+GC DownLeft1GC;
+GC DownLeft2GC;
+GC DownRight1GC;
+GC DownRight2GC;
+
+GC UpTogi1GC;
+GC UpTogi2GC;
+GC DownTogi1GC;
+GC DownTogi2GC;
+GC LeftTogi1GC;
+GC LeftTogi2GC;
+GC RightTogi1GC;
+GC RightTogi2GC;
+
+typedef struct {
+ GC *GCCreatePtr;
+ Pixmap *BitmapCreatePtr;
+ char *PixelPattern;
+ unsigned int PixelWidth;
+ unsigned int PixelHeight;
+} BitmapGCData;
+
+BitmapGCData BitmapGCDataTable[] =
+{
+ { &SpaceGC, &SpaceXbm, space_bits, space_width, space_height },
+ { &Mati2GC, &Mati2Xbm, mati2_bits, mati2_width, mati2_height },
+ { &Jare2GC, &Jare2Xbm, jare2_bits, jare2_width, jare2_height },
+ { &Kaki1GC, &Kaki1Xbm, kaki1_bits, kaki1_width, kaki1_height },
+ { &Kaki2GC, &Kaki2Xbm, kaki2_bits, kaki2_width, kaki2_height },
+ { &Mati3GC, &Mati3Xbm, mati3_bits, mati3_width, mati3_height },
+ { &Sleep1GC, &Sleep1Xbm, sleep1_bits, sleep1_width, sleep1_height },
+ { &Sleep2GC, &Sleep2Xbm, sleep2_bits, sleep2_width, sleep2_height },
+ { &AwakeGC, &AwakeXbm, awake_bits, awake_width, awake_height },
+ { &Up1GC, &Up1Xbm, up1_bits, up1_width, up1_height },
+ { &Up2GC, &Up2Xbm, up2_bits, up2_width, up2_height },
+ { &Down1GC, &Down1Xbm, down1_bits, down1_width, down1_height },
+ { &Down2GC, &Down2Xbm, down2_bits, down2_width, down2_height },
+ { &Left1GC, &Left1Xbm, left1_bits, left1_width, left1_height },
+ { &Left2GC, &Left2Xbm, left2_bits, left2_width, left2_height },
+ { &Right1GC, &Right1Xbm, right1_bits, right1_width, right1_height },
+ { &Right2GC, &Right2Xbm, right2_bits, right2_width, right2_height },
+ { &UpLeft1GC, &UpLeft1Xbm, upleft1_bits, upleft1_width, upleft1_height },
+ { &UpLeft2GC, &UpLeft2Xbm, upleft2_bits, upleft2_width, upleft2_height },
+ { &UpRight1GC,
+ &UpRight1Xbm, upright1_bits, upright1_width, upright1_height },
+ { &UpRight2GC,
+ &UpRight2Xbm, upright2_bits, upright2_width, upright2_height },
+ { &DownLeft1GC,
+ &DownLeft1Xbm, dwleft1_bits, dwleft1_width, dwleft1_height },
+ { &DownLeft2GC,
+ &DownLeft2Xbm, dwleft2_bits, dwleft2_width, dwleft2_height },
+ { &DownRight1GC,
+ &DownRight1Xbm, dwright1_bits, dwright1_width, dwright1_height },
+ { &DownRight2GC,
+ &DownRight2Xbm, dwright2_bits, dwright2_width, dwright2_height },
+ { &UpTogi1GC, &UpTogi1Xbm, utogi1_bits, utogi1_width, utogi1_height },
+ { &UpTogi2GC, &UpTogi2Xbm, utogi2_bits, utogi2_width, utogi2_height },
+ { &DownTogi1GC, &DownTogi1Xbm, dtogi1_bits, dtogi1_width, dtogi1_height },
+ { &DownTogi2GC, &DownTogi2Xbm, dtogi2_bits, dtogi2_width, dtogi2_height },
+ { &LeftTogi1GC, &LeftTogi1Xbm, ltogi1_bits, ltogi1_width, ltogi1_height },
+ { &LeftTogi2GC, &LeftTogi2Xbm, ltogi2_bits, ltogi2_width, ltogi2_height },
+ { &RightTogi1GC,
+ &RightTogi1Xbm, rtogi1_bits, rtogi1_width, rtogi1_height },
+ { &RightTogi2GC,
+ &RightTogi2Xbm, rtogi2_bits, rtogi2_width, rtogi2_height },
+ { NULL, NULL, NULL, NULL, NULL }
+};
+
+typedef struct {
+ GC *TickEvenGCPtr;
+ GC *TickOddGCPtr;
+} Animation;
+
+Animation AnimationPattern[] =
+{
+ { &Mati2GC, &Mati2GC }, /* NekoState == NEKO_STOP */
+ { &Jare2GC, &Mati2GC }, /* NekoState == NEKO_JARE */
+ { &Kaki1GC, &Kaki2GC }, /* NekoState == NEKO_KAKI */
+ { &Mati3GC, &Mati3GC }, /* NekoState == NEKO_AKUBI */
+ { &Sleep1GC, &Sleep2GC }, /* NekoState == NEKO_SLEEP */
+ { &AwakeGC, &AwakeGC }, /* NekoState == NEKO_AWAKE */
+ { &Up1GC, &Up2GC } , /* NekoState == NEKO_U_MOVE */
+ { &Down1GC, &Down2GC }, /* NekoState == NEKO_D_MOVE */
+ { &Left1GC, &Left2GC }, /* NekoState == NEKO_L_MOVE */
+ { &Right1GC, &Right2GC }, /* NekoState == NEKO_R_MOVE */
+ { &UpLeft1GC, &UpLeft2GC }, /* NekoState == NEKO_UL_MOVE */
+ { &UpRight1GC, &UpRight2GC }, /* NekoState == NEKO_UR_MOVE */
+ { &DownLeft1GC, &DownLeft2GC }, /* NekoState == NEKO_DL_MOVE */
+ { &DownRight1GC, &DownRight2GC }, /* NekoState == NEKO_DR_MOVE */
+ { &UpTogi1GC, &UpTogi2GC }, /* NekoState == NEKO_U_TOGI */
+ { &DownTogi1GC, &DownTogi2GC }, /* NekoState == NEKO_D_TOGI */
+ { &LeftTogi1GC, &LeftTogi2GC }, /* NekoState == NEKO_L_TOGI */
+ { &RightTogi1GC, &RightTogi2GC }, /* NekoState == NEKO_R_TOGI */
+};
+
+
+/*--------------------------------------------------------------
+ *
+ * 0C5/31/93^504W%G!<%?!&GC =i4|2=
+ *
+ *--------------------------------------------------------------*/
+
+void
+InitBitmapAndGCs()
+{
+ BitmapGCData *BitmapGCDataTablePtr;
+ XGCValues theGCValues;
+
+ theGCValues.function = GXcopy;
+ theGCValues.foreground = BlackPixel( theDisplay, theScreen );
+ theGCValues.background = WhitePixel( theDisplay, theScreen );
+ theGCValues.fill_style = FillTiled;
+
+ for ( BitmapGCDataTablePtr = BitmapGCDataTable;
+ BitmapGCDataTablePtr->GCCreatePtr != NULL;
+ BitmapGCDataTablePtr++ ) {
+
+ *(BitmapGCDataTablePtr->BitmapCreatePtr)
+ = XCreatePixmapFromBitmapData(
+ theDisplay,
+ RootWindow( theDisplay, theScreen ),
+ BitmapGCDataTablePtr->PixelPattern,
+ BitmapGCDataTablePtr->PixelWidth,
+ BitmapGCDataTablePtr->PixelHeight,
+ BlackPixel( theDisplay, theScreen ),
+ WhitePixel( theDisplay, theScreen ),
+ DefaultDepth( theDisplay, theScreen ) );
+
+ theGCValues.tile = *(BitmapGCDataTablePtr->BitmapCreatePtr);
+
+ *(BitmapGCDataTablePtr->GCCreatePtr)
+ = XCreateGC( theDisplay, theWindow,
+ GCFunction | GCForeground | GCBackground |
+ GCTile | GCFillStyle,
+ &theGCValues );
+ }
+
+ XFlush( theDisplay );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * %9%/%j!<%s4D6-=i4|2=
+ *
+ *--------------------------------------------------------------*/
+
+void
+InitScreen( DisplayName, theGeometry, TitleName, iconicState )
+ char *DisplayName;
+ char *theGeometry;
+ char *TitleName;
+ Bool iconicState;
+{
+ int GeometryStatus;
+ XSetWindowAttributes theWindowAttributes;
+ XSizeHints theSizeHints;
+ unsigned long theWindowMask;
+ Pixmap theIconPixmap;
+ Pixmap theCursorSource;
+ Pixmap theCursorMask;
+ XWMHints theWMHints;
+ Window theRoot;
+ Colormap theColormap;
+ XColor theWhiteColor, theBlackColor, theExactColor;
+
+ if ( ( theDisplay = XOpenDisplay( DisplayName ) ) == NULL ) {
+ fprintf( stderr, "%s: Can't open display", ProgramName );
+ if ( DisplayName != NULL ) {
+ fprintf( stderr, " %s.\n", DisplayName );
+ } else {
+ fprintf( stderr, ".\n" );
+ }
+ exit( 1 );
+ }
+
+ theScreen = DefaultScreen( theDisplay );
+ theDepth = DefaultDepth( theDisplay, theScreen );
+
+ theBlackPixel = BlackPixel( theDisplay, theScreen );
+ theWhitePixel = WhitePixel( theDisplay, theScreen );
+
+ GeometryStatus = XParseGeometry( theGeometry,
+ &WindowPointX, &WindowPointY,
+ &WindowWidth, &WindowHeight );
+
+ if ( !( GeometryStatus & XValue ) ) {
+ WindowPointX = DEFAULT_WIN_X;
+ }
+ if ( !( GeometryStatus & YValue ) ) {
+ WindowPointY = DEFAULT_WIN_Y;
+ }
+ if ( !( GeometryStatus & WidthValue ) ) {
+ WindowWidth = WINDOW_WIDTH;
+ }
+ if ( !( GeometryStatus & HeightValue ) ) {
+ WindowHeight = WINDOW_HEIGHT;
+ }
+
+ theCursorSource
+ = XCreateBitmapFromData( theDisplay,
+ RootWindow( theDisplay, theScreen ),
+ cursor_bits,
+ cursor_width,
+ cursor_height );
+
+ theCursorMask
+ = XCreateBitmapFromData( theDisplay,
+ RootWindow( theDisplay, theScreen ),
+ cursor_mask_bits,
+ cursor_mask_width,
+ cursor_mask_height );
+
+ theColormap = DefaultColormap( theDisplay, theScreen );
+
+ if ( !XAllocNamedColor( theDisplay, theColormap,
+ "white", &theWhiteColor, &theExactColor ) ) {
+ fprintf( stderr,
+ "%s: Can't XAllocNamedColor( \"white\" ).\n", ProgramName );
+ exit( 1 );
+ }
+
+ if ( !XAllocNamedColor( theDisplay, theColormap,
+ "black", &theBlackColor, &theExactColor ) ) {
+ fprintf( stderr,
+ "%s: Can't XAllocNamedColor( \"black\" ).\n", ProgramName );
+ exit( 1 );
+ }
+
+ theCursor = XCreatePixmapCursor( theDisplay,
+ theCursorSource, theCursorMask,
+ &theBlackColor, &theWhiteColor,
+ cursor_x_hot, cursor_y_hot );
+
+ theWindowAttributes.border_pixel = theBlackPixel;
+ theWindowAttributes.background_pixel = theWhitePixel;
+ theWindowAttributes.cursor = theCursor;
+ theWindowAttributes.override_redirect = False;
+
+ theWindowMask = CWBackPixel |
+ CWBorderPixel |
+ CWCursor |
+ CWOverrideRedirect;
+
+ theWindow = XCreateWindow( theDisplay,
+ RootWindow( theDisplay, theScreen ),
+ WindowPointX, WindowPointY,
+ WindowWidth, WindowHeight,
+ BorderWidth,
+ theDepth,
+ InputOutput,
+ CopyFromParent,
+ theWindowMask,
+ &theWindowAttributes );
+
+ theIconPixmap = XCreateBitmapFromData( theDisplay, theWindow,
+ icon_bits,
+ icon_width,
+ icon_height );
+
+ theWMHints.icon_pixmap = theIconPixmap;
+ if ( iconicState ) {
+ theWMHints.initial_state = IconicState;
+ } else {
+ theWMHints.initial_state = NormalState;
+ }
+ theWMHints.flags = IconPixmapHint | StateHint;
+
+ XSetWMHints( theDisplay, theWindow, &theWMHints );
+
+ theSizeHints.flags = PPosition | PSize;
+ theSizeHints.x = WindowPointX;
+ theSizeHints.y = WindowPointY;
+ theSizeHints.width = WindowWidth;
+ theSizeHints.height = WindowHeight;
+
+ XSetNormalHints( theDisplay, theWindow, &theSizeHints );
+
+ if ( strlen( TitleName ) >= 1 ) {
+ XStoreName( theDisplay, theWindow, TitleName );
+ XSetIconName( theDisplay, theWindow, TitleName );
+ } else {
+ XStoreName( theDisplay, theWindow, ProgramName );
+ XSetIconName( theDisplay, theWindow, ProgramName );
+ }
+
+ XMapWindow( theDisplay, theWindow );
+
+ XFlush( theDisplay );
+
+ XGetGeometry( theDisplay, theWindow,
+ &theRoot,
+ &WindowPointX, &WindowPointY,
+ &WindowWidth, &WindowHeight,
+ &BorderWidth, &theDepth );
+
+ InitBitmapAndGCs();
+
+ XSelectInput( theDisplay, theWindow, EVENT_MASK1 );
+
+ XFlush( theDisplay );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * %$%s%?!</usr/src/games/xneko/SCCS/s.xneko.ck
+ *
+ * !!$3$N4X?t$r8F$V$H!"$"$k0lDj$N;~4VJV$C$F$3$J$/$J$k!#G-
+ * $NF0:n%?%$%_%s%0D4@0$KMxMQ$9$k$3$H!#
+ *
+ *--------------------------------------------------------------*/
+
+void
+Interval()
+{
+ pause();
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * SCCS/s.xneko.c#728/%+%&%s%H=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+TickCount()
+{
+ if ( ++NekoTickCount >= MAX_TICK ) {
+ NekoTickCount = 0;
+ }
+
+ if ( NekoTickCount % 2 == 0 ) {
+ if ( NekoStateCount < MAX_TICK ) {
+ NekoStateCount++;
+ }
+ }
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G->uBV@_Dj
+ *
+ *--------------------------------------------------------------*/
+
+void
+SetNekoState( SetValue )
+ int SetValue;
+{
+ NekoTickCount = 0;
+ NekoStateCount = 0;
+
+ NekoState = SetValue;
+
+#ifdef DEBUG
+ switch ( NekoState ) {
+ case NEKO_STOP:
+ case NEKO_JARE:
+ case NEKO_KAKI:
+ case NEKO_AKUBI:
+ case NEKO_SLEEP:
+ case NEKO_U_TOGI:
+ case NEKO_D_TOGI:
+ case NEKO_L_TOGI:
+ case NEKO_R_TOGI:
+ NekoMoveDx = NekoMoveDy = 0;
+ break;
+ default:
+ break;
+ }
+#endif
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-IA2h=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+DrawNeko( x, y, DrawGC )
+ int x;
+ int y;
+ GC DrawGC;
+{
+ if ( ( x != NekoLastX || y != NekoLastY )
+ && ( EventState != DEBUG_LIST ) ) {
+ XFillRectangle( theDisplay, theWindow, SpaceGC,
+ NekoLastX, NekoLastY,
+ BITMAP_WIDTH, BITMAP_HEIGHT );
+ }
+
+ XSetTSOrigin( theDisplay, DrawGC, x, y );
+
+ XFillRectangle( theDisplay, theWindow, DrawGC,
+ x, y, BITMAP_WIDTH, BITMAP_HEIGHT );
+
+ XFlush( theDisplay );
+
+ NekoLastX = x;
+ NekoLastY = y;
+
+ NekoLastGC = DrawGC;
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-:FIA2h=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+RedrawNeko()
+{
+ XFillRectangle( theDisplay, theWindow, NekoLastGC,
+ NekoLastX, NekoLastY,
+ BITMAP_WIDTH, BITMAP_HEIGHT );
+
+ XFlush( theDisplay );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0\F0J}K!7hDj
+ *
+ *--------------------------------------------------------------*/
+
+void
+NekoDirection()
+{
+ int NewState;
+ double LargeX, LargeY;
+ double Length;
+ double SinTheta;
+
+ if ( NekoMoveDx == 0 && NekoMoveDy == 0 ) {
+ NewState = NEKO_STOP;
+ } else {
+ LargeX = (double)NekoMoveDx;
+ LargeY = (double)(-NekoMoveDy);
+ Length = sqrt( LargeX * LargeX + LargeY * LargeY );
+ SinTheta = LargeY / Length;
+
+ if ( NekoMoveDx > 0 ) {
+ if ( SinTheta > SinPiPer8Times3 ) {
+ NewState = NEKO_U_MOVE;
+ } else if ( ( SinTheta <= SinPiPer8Times3 )
+ && ( SinTheta > SinPiPer8 ) ) {
+ NewState = NEKO_UR_MOVE;
+ } else if ( ( SinTheta <= SinPiPer8 )
+ && ( SinTheta > -( SinPiPer8 ) ) ) {
+ NewState = NEKO_R_MOVE;
+ } else if ( ( SinTheta <= -( SinPiPer8 ) )
+ && ( SinTheta > -( SinPiPer8Times3 ) ) ) {
+ NewState = NEKO_DR_MOVE;
+ } else {
+ NewState = NEKO_D_MOVE;
+ }
+ } else {
+ if ( SinTheta > SinPiPer8Times3 ) {
+ NewState = NEKO_U_MOVE;
+ } else if ( ( SinTheta <= SinPiPer8Times3 )
+ && ( SinTheta > SinPiPer8 ) ) {
+ NewState = NEKO_UL_MOVE;
+ } else if ( ( SinTheta <= SinPiPer8 )
+ && ( SinTheta > -( SinPiPer8 ) ) ) {
+ NewState = NEKO_L_MOVE;
+ } else if ( ( SinTheta <= -( SinPiPer8 ) )
+ && ( SinTheta > -( SinPiPer8Times3 ) ) ) {
+ NewState = NEKO_DL_MOVE;
+ } else {
+ NewState = NEKO_D_MOVE;
+ }
+ }
+ }
+
+ if ( NekoState != NewState ) {
+ SetNekoState( NewState );
+ }
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-JI$V$D$+$jH=Dj
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+IsWindowOver()
+{
+ Bool ReturnValue = False;
+
+ if ( NekoY <= 0 ) {
+ NekoY = 0;
+ ReturnValue = True;
+ } else if ( NekoY >= WindowHeight - BITMAP_HEIGHT ) {
+ NekoY = WindowHeight - BITMAP_HEIGHT;
+ ReturnValue = True;
+ }
+ if ( NekoX <= 0 ) {
+ NekoX = 0;
+ ReturnValue = True;
+ } else if ( NekoX >= WindowWidth - BITMAP_WIDTH ) {
+ NekoX = WindowWidth - BITMAP_WIDTH;
+ ReturnValue = True;
+ }
+
+ return( ReturnValue );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0\F0>u67H=Dj
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+IsNekoDontMove()
+{
+ if ( NekoX == NekoLastX && NekoY == NekoLastY ) {
+ return( True );
+ } else {
+ return( False );
+ }
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0\F03+;OH=Dj
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+IsNekoMoveStart()
+{
+#ifndef DEBUG
+ if ( ( PrevMouseX >= MouseX - IDLE_SPACE
+ && PrevMouseX <= MouseX + IDLE_SPACE ) &&
+ ( PrevMouseY >= MouseY - IDLE_SPACE
+ && PrevMouseY <= MouseY + IDLE_SPACE ) ) {
+ return( False );
+ } else {
+ return( True );
+ }
+#else
+ if ( NekoMoveDx == 0 && NekoMoveDy == 0 ) {
+ return( False );
+ } else {
+ return( True );
+ }
+#endif
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0\F0 dx, dy 7W;;
+ *
+ *--------------------------------------------------------------*/
+
+void
+CalcDxDy()
+{
+ Window QueryRoot, QueryChild;
+ int AbsoluteX, AbsoluteY;
+ int RelativeX, RelativeY;
+ unsigned int ModKeyMask;
+ double LargeX, LargeY;
+ double DoubleLength, Length;
+
+ XQueryPointer( theDisplay, theWindow,
+ &QueryRoot, &QueryChild,
+ &AbsoluteX, &AbsoluteY,
+ &RelativeX, &RelativeY,
+ &ModKeyMask );
+
+ PrevMouseX = MouseX;
+ PrevMouseY = MouseY;
+
+ MouseX = RelativeX;
+ MouseY = RelativeY;
+
+ LargeX = (double)( MouseX - NekoX - BITMAP_WIDTH / 2 );
+ LargeY = (double)( MouseY - NekoY - BITMAP_HEIGHT );
+
+ DoubleLength = LargeX * LargeX + LargeY * LargeY;
+
+ if ( DoubleLength != (double)0 ) {
+ Length = sqrt( DoubleLength );
+ if ( Length <= NekoSpeed ) {
+ NekoMoveDx = (int)LargeX;
+ NekoMoveDy = (int)LargeY;
+ } else {
+ NekoMoveDx = (int)( ( NekoSpeed * LargeX ) / Length );
+ NekoMoveDy = (int)( ( NekoSpeed * LargeY ) / Length );
+ }
+ } else {
+ NekoMoveDx = NekoMoveDy = 0;
+ }
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * F0:n2r@OG-IA2h=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+NekoThinkDraw()
+{
+#ifndef DEBUG
+ CalcDxDy();
+#endif
+
+ if ( NekoState != NEKO_SLEEP ) {
+ DrawNeko( NekoX, NekoY,
+ NekoTickCount % 2 == 0 ?
+ *(AnimationPattern[ NekoState ].TickEvenGCPtr) :
+ *(AnimationPattern[ NekoState ].TickOddGCPtr) );
+ } else {
+ DrawNeko( NekoX, NekoY,
+ NekoTickCount % 8 <= 3 ?
+ *(AnimationPattern[ NekoState ].TickEvenGCPtr) :
+ *(AnimationPattern[ NekoState ].TickOddGCPtr) );
+ }
+
+ TickCount();
+
+ switch ( NekoState ) {
+ case NEKO_STOP:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ if ( NekoStateCount < NEKO_STOP_TIME ) {
+ break;
+ }
+ if ( NekoMoveDx < 0 && NekoX <= 0 ) {
+ SetNekoState( NEKO_L_TOGI );
+ } else if ( NekoMoveDx > 0 && NekoX >= WindowWidth - BITMAP_WIDTH ) {
+ SetNekoState( NEKO_R_TOGI );
+ } else if ( NekoMoveDy < 0 && NekoY <= 0 ) {
+ SetNekoState( NEKO_U_TOGI );
+ } else if ( NekoMoveDy > 0 && NekoY >= WindowHeight - BITMAP_HEIGHT ) {
+ SetNekoState( NEKO_D_TOGI );
+ } else {
+ SetNekoState( NEKO_JARE );
+ }
+ break;
+ case NEKO_JARE:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ if ( NekoStateCount < NEKO_JARE_TIME ) {
+ break;
+ }
+ SetNekoState( NEKO_KAKI );
+ break;
+ case NEKO_KAKI:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ if ( NekoStateCount < NEKO_KAKI_TIME ) {
+ break;
+ }
+ SetNekoState( NEKO_AKUBI );
+ break;
+ case NEKO_AKUBI:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ if ( NekoStateCount < NEKO_AKUBI_TIME ) {
+ break;
+ }
+ SetNekoState( NEKO_SLEEP );
+ break;
+ case NEKO_SLEEP:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ break;
+ case NEKO_AWAKE:
+ if ( NekoStateCount < NEKO_AWAKE_TIME ) {
+ break;
+ }
+ NekoDirection(); /* G-$,F0$/8~$-$r5a$a$k */
+ break;
+ case NEKO_U_MOVE:
+ case NEKO_D_MOVE:
+ case NEKO_L_MOVE:
+ case NEKO_R_MOVE:
+ case NEKO_UL_MOVE:
+ case NEKO_UR_MOVE:
+ case NEKO_DL_MOVE:
+ case NEKO_DR_MOVE:
+ NekoX += NekoMoveDx;
+ NekoY += NekoMoveDy;
+ NekoDirection();
+ if ( IsWindowOver() ) {
+ if ( IsNekoDontMove() ) {
+ SetNekoState( NEKO_STOP );
+ }
+ }
+ break;
+ case NEKO_U_TOGI:
+ case NEKO_D_TOGI:
+ case NEKO_L_TOGI:
+ case NEKO_R_TOGI:
+ if ( IsNekoMoveStart() ) {
+ SetNekoState( NEKO_AWAKE );
+ break;
+ }
+ if ( NekoStateCount < NEKO_TOGI_TIME ) {
+ break;
+ }
+ SetNekoState( NEKO_KAKI );
+ break;
+ default:
+ /* Internal Error */
+ SetNekoState( NEKO_STOP );
+ break;
+ }
+
+ Interval();
+}
+
+
+#ifdef DEBUG
+
+/*--------------------------------------------------------------
+ *
+ * %-%c%i%/%?!<0lMwI=<(!J5/31/93P11500MQ!K
+ *
+ *--------------------------------------------------------------*/
+
+void
+DisplayCharacters()
+{
+ int Index;
+ int x, y;
+
+ for ( Index = 0, x = 0, y = 0;
+ BitmapGCDataTable[ Index ].GCCreatePtr != NULL; Index++ ) {
+
+ DrawNeko( x, y, *(BitmapGCDataTable[ Index ].GCCreatePtr) );
+ XFlush( theDisplay );
+
+ x += BITMAP_WIDTH;
+
+ if ( x > WindowWidth - BITMAP_WIDTH ) {
+ x = 0;
+ y += BITMAP_HEIGHT;
+ if ( y > WindowHeight - BITMAP_HEIGHT) {
+ break;
+ }
+ }
+ }
+}
+
+#endif /* DEBUG */
+
+
+/*--------------------------------------------------------------
+ *
+ * %-!<%$s%H=hM}
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+ProcessKeyPress( theKeyEvent )
+ XKeyEvent *theKeyEvent;
+{
+ int Length;
+ int theKeyBufferMaxLen = AVAIL_KEYBUF;
+ char theKeyBuffer[ AVAIL_KEYBUF + 1 ];
+ KeySym theKeySym;
+ XComposeStatus theComposeStatus;
+ Bool ReturnState;
+
+ ReturnState = True;
+
+ Length = XLookupString( theKeyEvent,
+ theKeyBuffer, theKeyBufferMaxLen,
+ &theKeySym, &theComposeStatus );
+
+ if ( Length > 0 ) {
+ switch ( theKeyBuffer[ 0 ] ) {
+ case 'q':
+ case 'Q':
+ if ( theKeyEvent->state & Mod1Mask ) { /* META (Alt) %-!< */
+ ReturnState = False;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+#ifdef DEBUG
+ if ( EventState == DEBUG_MOVE ) {
+ switch ( theKeySym ) {
+ case XK_KP_1:
+ NekoMoveDx = -(int)( NekoSpeed / sqrt( (double)2 ) );
+ NekoMoveDy = -NekoMoveDx;
+ break;
+ case XK_KP_2:
+ NekoMoveDx = 0;
+ NekoMoveDy = (int)NekoSpeed;
+ break;
+ case XK_KP_3:
+ NekoMoveDx = (int)( NekoSpeed / sqrt( (double)2 ) );
+ NekoMoveDy = NekoMoveDx;
+ break;
+ case XK_KP_4:
+ NekoMoveDx = -(int)NekoSpeed;
+ NekoMoveDy = 0;
+ break;
+ case XK_KP_5:
+ NekoMoveDx = 0;
+ NekoMoveDy = 0;
+ break;
+ case XK_KP_6:
+ NekoMoveDx = (int)NekoSpeed;
+ NekoMoveDy = 0;
+ break;
+ case XK_KP_7:
+ NekoMoveDx = -(int)( NekoSpeed / sqrt( (double)2 ) );
+ NekoMoveDy = NekoMoveDx;
+ break;
+ case XK_KP_8:
+ NekoMoveDx = 0;
+ NekoMoveDy = -(int)NekoSpeed;
+ break;
+ case XK_KP_9:
+ NekoMoveDx = (int)( NekoSpeed / sqrt( (double)2 ) );
+ NekoMoveDy = -NekoMoveDx;
+ break;
+ }
+ }
+#endif
+
+ return( ReturnState );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0LCVD4@0
+ *
+ *--------------------------------------------------------------*/
+
+void
+NekoAdjust()
+{
+ if ( NekoX < 0 ) {
+ NekoX = 0;
+ } else if ( NekoX > WindowWidth - BITMAP_WIDTH ) {
+ NekoX = WindowWidth - BITMAP_WIDTH;
+ }
+
+ if ( NekoY < 0 ) {
+ NekoY = 0;
+ } else if ( NekoY > WindowHeight - BITMAP_HEIGHT ) {
+ NekoY = WindowHeight - BITMAP_HEIGHT;
+ }
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * %$s%H=hM}
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+ProcessEvent()
+{
+ XEvent theEvent;
+ Bool ContinueState = True;
+
+ switch ( EventState ) {
+ case NORMAL_STATE:
+ while ( XCheckMaskEvent( theDisplay, EVENT_MASK1, &theEvent ) ) {
+ switch ( theEvent.type ) {
+ case ConfigureNotify:
+ WindowWidth = theEvent.xconfigure.width;
+ WindowHeight = theEvent.xconfigure.height;
+ WindowPointX = theEvent.xconfigure.x;
+ WindowPointY = theEvent.xconfigure.y;
+ BorderWidth = theEvent.xconfigure.border_width;
+ NekoAdjust();
+ break;
+ case Expose:
+ if ( theEvent.xexpose.count == 0 ) {
+ RedrawNeko();
+ }
+ break;
+ case MapNotify:
+ RedrawNeko();
+ break;
+ case KeyPress:
+ ContinueState = ProcessKeyPress( &theEvent.xkey );
+ if ( !ContinueState ) {
+ return( ContinueState );
+ }
+ break;
+ default:
+ /* Unknown Event */
+ break;
+ }
+ }
+ break;
+#ifdef DEBUG
+ case DEBUG_LIST:
+ XNextEvent( theDisplay, &theEvent );
+ switch ( theEvent.type ) {
+ case ConfigureNotify:
+ WindowWidth = theEvent.xconfigure.width;
+ WindowHeight = theEvent.xconfigure.height;
+ WindowPointX = theEvent.xconfigure.x;
+ WindowPointY = theEvent.xconfigure.y;
+ BorderWidth = theEvent.xconfigure.border_width;
+ break;
+ case Expose:
+ if ( theEvent.xexpose.count == 0 ) {
+ DisplayCharacters();
+ }
+ break;
+ case MapNotify:
+ DisplayCharacters();
+ break;
+ case KeyPress:
+ ContinueState = ProcessKeyPress( &theEvent );
+ break;
+ default:
+ /* Unknown Event */
+ break;
+ }
+ break;
+ case DEBUG_MOVE:
+ while ( XCheckMaskEvent( theDisplay, EVENT_MASK1, &theEvent ) ) {
+ switch ( theEvent.type ) {
+ case ConfigureNotify:
+ WindowWidth = theEvent.xconfigure.width;
+ WindowHeight = theEvent.xconfigure.height;
+ WindowPointX = theEvent.xconfigure.x;
+ WindowPointY = theEvent.xconfigure.y;
+ BorderWidth = theEvent.xconfigure.border_width;
+ NekoAdjust();
+ break;
+ case Expose:
+ if ( theEvent.xexpose.count == 0 ) {
+ RedrawNeko();
+ }
+ break;
+ case MapNotify:
+ RedrawNeko();
+ break;
+ case KeyPress:
+ ContinueState = ProcessKeyPress( &theEvent );
+ if ( !ContinueState ) {
+ return( ContinueState );
+ }
+ break;
+ default:
+ /* Unknown Event */
+ break;
+ }
+ }
+ break;
+#endif
+ default:
+ /* Internal Error */
+ break;
+ }
+
+ return( ContinueState );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+ProcessNeko()
+{
+ struct itimerval Value;
+
+ /* 4D6-$N=i4|2= */
+
+ EventState = NORMAL_STATE;
+
+ /* G-$N=i4|2= */
+
+ NekoX = ( WindowWidth - BITMAP_WIDTH / 2 ) / 2;
+ NekoY = ( WindowHeight - BITMAP_HEIGHT / 2 ) / 2;
+
+ NekoLastX = NekoX;
+ NekoLastY = NekoY;
+
+ SetNekoState( NEKO_STOP );
+
+ /* %?%$%^!<@_Dj */
+
+ timerclear( &Value.it_interval );
+ timerclear( &Value.it_value );
+
+ Value.it_interval.tv_usec = IntervalTime;
+ Value.it_value.tv_usec = IntervalTime;
+
+ setitimer( ITIMER_REAL, &Value, 0 );
+
+ /* %a%$%s=hM} */
+
+ do {
+ NekoThinkDraw();
+ } while ( ProcessEvent() );
+}
+
+
+#ifdef DEBUG
+
+/*--------------------------------------------------------------
+ *
+ * G-0lMw!J5/31/93P14460MQ!K
+ *
+ *--------------------------------------------------------------*/
+
+void
+NekoList()
+{
+ EventState = DEBUG_LIST;
+
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "G-0lMw$rI=<($7$^$9!#(Quit !D Alt-Q)\n" );
+ fprintf( stderr, "\n" );
+
+ XSelectInput( theDisplay, theWindow, EVENT_MASK2 );
+
+ while ( ProcessEvent() );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * G-0\F0SCCS/s.xneko.c9%H!J5/31/93P14670MQ!K
+ *
+ *--------------------------------------------------------------*/
+
+void
+NekoMoveTest()
+{
+ struct itimerval Value;
+
+ /* 4D6-$N=i4|2= */
+
+ EventState = DEBUG_MOVE;
+
+ /* G-$N=i4|2= */
+
+ NekoX = ( WindowWidth - BITMAP_WIDTH / 2 ) / 2;
+ NekoY = ( WindowHeight - BITMAP_HEIGHT / 2 ) / 2;
+
+ NekoLastX = NekoX;
+ NekoLastY = NekoY;
+
+ SetNekoState( NEKO_STOP );
+
+ /* %?%$%^!<@_Dj */
+
+ timerclear( &Value.it_interval );
+ timerclear( &Value.it_value );
+
+ Value.it_interval.tv_usec = IntervalTime;
+ Value.it_value.tv_usec = IntervalTime;
+
+ setitimer( ITIMER_REAL, &Value, 0 );
+
+ /* %a%$%s=hM} */
+
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "G-$N0\F0SCCS/s.xneko.c9%H$r9T$$$^$9!#(Quit !D Alt-Q)\n" );
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "\t%-!<May 31, 1993C%I>e$NSCCS/s.xneko.cs%-!<$GG-$r0\F0$5$;$F2<$5$$!#\n" );
+ fprintf( stderr, "\t(M-8z$J%-!<$O#1!A#9$G$9!#)\n" );
+ fprintf( stderr, "\n" );
+
+ do {
+ NekoThinkDraw();
+ } while ( ProcessEvent() );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * %a%K%e!<=hM}!J5/31/93P15170MQ!K
+ *
+ *--------------------------------------------------------------*/
+
+void
+ProcessDebugMenu()
+{
+ int UserSelectNo = 0;
+ char UserAnswer[ BUFSIZ ];
+
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "!Zxneko 5/31/93P15280%a%K%e!<![\n" );
+
+ while ( !( UserSelectNo >= 1 && UserSelectNo <= 2 ) ) {
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "\t1)!!G-%-%c%i%/%?!<0lMwI=<(\n" );
+ fprintf( stderr, "\t2)!!G-0\F0SCCS/s.xneko.c9%H\n" );
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "Select: " );
+
+ fgets( UserAnswer, sizeof( UserAnswer ), stdin );
+
+ UserSelectNo = atoi( UserAnswer );
+
+ if ( !( UserSelectNo >= 1 && UserSelectNo <= 2 ) ) {
+ fprintf( stderr, "\n" );
+ fprintf( stderr, "@5$7$$HV9f$rA*Br$7$F2<$5$$!#\n" );
+ }
+ }
+
+ switch ( UserSelectNo ) {
+ case 1:
+ /* G-%-%c%i%/%?!<0lMwI=<( */
+ NekoList();
+ break;
+ case 2:
+ /* G-0\F0SCCS/s.xneko.c9%H */
+ NekoMoveTest();
+ break;
+ default:
+ /* Internal Error */
+ break;
+ }
+
+ fprintf( stderr, "SCCS/s.xneko.c9%H=*N;!#\n" );
+ fprintf( stderr, "\n" );
+}
+
+#endif /* DEBUG */
+
+
+/*--------------------------------------------------------------
+ *
+ * SIGALRM %7%0%J%k=hM}
+ *
+ *--------------------------------------------------------------*/
+
+void
+NullFunction()
+{
+ /* No Operation */
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * Usage
+ *
+ *--------------------------------------------------------------*/
+
+void
+Usage()
+{
+ fprintf( stderr,
+ "Usage: %s [-display <display>] [-geometry <geometry>] \\\n",
+ ProgramName );
+ fprintf( stderr, " [-title <title>] [-name <title>] [-iconic] \\\n" );
+ fprintf( stderr, " [-speed <speed>] [-time <time>] [-help]\n" );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * #XMay 31, 1993i%a!<%?I>2A
+ *
+ *--------------------------------------------------------------*/
+
+Bool
+GetArguments( argc, argv, theDisplayName, theGeometry, theTitle,
+ NekoSpeed, IntervalTime )
+ int argc;
+ char *argv[];
+ char *theDisplayName;
+ char *theGeometry;
+ char *theTitle;
+ double *NekoSpeed;
+ long *IntervalTime;
+{
+ int ArgCounter;
+ Bool iconicState;
+
+ theDisplayName[ 0 ] = '\0';
+ theGeometry[ 0 ] = '\0';
+ theTitle[ 0 ] = '\0';
+
+ iconicState = False;
+
+ for ( ArgCounter = 0; ArgCounter < argc; ArgCounter++ ) {
+
+ if ( strncmp( argv[ ArgCounter ], "-h", 2 ) == 0 ) {
+ Usage();
+ exit( 0 );
+ } else if ( strcmp( argv[ ArgCounter ], "-display" ) == 0 ) {
+ ArgCounter++;
+ if ( ArgCounter < argc ) {
+ strcpy( theDisplayName, argv[ ArgCounter ] );
+ } else {
+ fprintf( stderr, "%s: -display option error.\n", ProgramName );
+ exit( 1 );
+ }
+ } else if ( strncmp( argv[ ArgCounter ], "-geom", 5 ) == 0 ) {
+ ArgCounter++;
+ if ( ArgCounter < argc ) {
+ strcpy( theGeometry, argv[ ArgCounter ] );
+ } else {
+ fprintf( stderr,
+ "%s: -geometry option error.\n", ProgramName );
+ exit( 1 );
+ }
+ } else if ( ( strcmp( argv[ ArgCounter ], "-title" ) == 0 )
+ || ( strcmp( argv[ ArgCounter ], "-name" ) == 0 ) ) {
+ ArgCounter++;
+ if ( ArgCounter < argc ) {
+ strcpy( theTitle, argv[ ArgCounter ] );
+ } else {
+ fprintf( stderr, "%s: -title option error.\n", ProgramName );
+ exit( 1 );
+ }
+ } else if ( strcmp( argv[ ArgCounter ], "-iconic" ) == 0 ) {
+ iconicState = True;
+ } else if ( strcmp( argv[ ArgCounter ], "-speed" ) == 0 ) {
+ ArgCounter++;
+ if ( ArgCounter < argc ) {
+ *NekoSpeed = atof( argv[ ArgCounter ] );
+ } else {
+ fprintf( stderr, "%s: -speed option error.\n", ProgramName );
+ exit( 1 );
+ }
+ } else if ( strcmp( argv[ ArgCounter ], "-time" ) == 0 ) {
+ ArgCounter++;
+ if ( ArgCounter < argc ) {
+ *IntervalTime = atol( argv[ ArgCounter ] );
+ } else {
+ fprintf( stderr, "%s: -time option error.\n", ProgramName );
+ exit( 1 );
+ }
+ } else {
+ fprintf( stderr,
+ "%s: Unknown option \"%s\".\n", ProgramName,
+ argv[ ArgCounter ] );
+ Usage();
+ exit( 1 );
+ }
+ }
+
+ if ( strlen( theDisplayName ) < 1 ) {
+ theDisplayName = NULL;
+ }
+
+ if ( strlen( theGeometry ) < 1 ) {
+ theGeometry = NULL;
+ }
+
+ return( iconicState );
+}
+
+
+/*--------------------------------------------------------------
+ *
+ * %a%$%s4X?t
+ *
+ *--------------------------------------------------------------*/
+
+int
+main( argc, argv )
+ int argc;
+ char *argv[];
+{
+ Bool iconicState;
+ char theDisplayName[ DIRNAMELEN ];
+ char theGeometry[ DIRNAMELEN ];
+ char theTitle[ DIRNAMELEN ];
+
+ ProgramName = argv[ 0 ];
+
+ argc--;
+ argv++;
+
+ iconicState = GetArguments( argc, argv,
+ theDisplayName,
+ theGeometry,
+ theTitle,
+ &NekoSpeed,
+ &IntervalTime );
+
+ InitScreen( theDisplayName, theGeometry, theTitle, iconicState );
+
+ signal( SIGALRM, NullFunction );
+
+ SinPiPer8Times3 = sin( PI_PER8 * (double)3 );
+ SinPiPer8 = sin( PI_PER8 );
+
+#ifndef DEBUG
+ ProcessNeko();
+#else
+ ProcessDebugMenu();
+#endif
+
+ exit( 0 );
+}
diff --git a/games/x11/xroach/Makefile b/games/x11/xroach/Makefile
new file mode 100644
index 0000000..dc762c8
--- /dev/null
+++ b/games/x11/xroach/Makefile
@@ -0,0 +1,10 @@
+# @(#)Makefile 8.1 (Berkeley) 6/8/93
+
+PROG= xroach
+MAN6= xroach.6
+CFLAGS+= -I${.CURDIR}/bitmaps
+DPADD+= ${X11BASE}/lib/libX11.a ${LIBM}
+LDDESTDIR+= -L${X11BASE}/lib
+LDADD+= -lX11 -lm
+
+.include <bsd.prog.mk>
diff --git a/games/x11/xroach/bitmaps/roach000.xbm b/games/x11/xroach/bitmaps/roach000.xbm
new file mode 100644
index 0000000..4b04b05
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach000.xbm
@@ -0,0 +1,30 @@
+#define roach000_width 48
+#define roach000_height 48
+
+static char roach000_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x06, 0x80,
+ 0x00, 0x00, 0x03, 0x00, 0x03, 0x60, 0x00, 0x00, 0x7e, 0x80, 0xc1, 0x3f,
+ 0x00, 0x00, 0xc0, 0x83, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xc6, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xef, 0x01,
+ 0x00, 0x00, 0xfe, 0xff, 0xe7, 0x11, 0x10, 0xc0, 0xff, 0xff, 0xf7, 0x03,
+ 0x02, 0xf0, 0xff, 0xff, 0xf3, 0x3f, 0x00, 0xf0, 0xff, 0xff, 0xf3, 0x3b,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xf3, 0x3f,
+ 0x00, 0xe0, 0xff, 0xff, 0xf3, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xf3, 0x07,
+ 0x01, 0xe0, 0xff, 0xff, 0xf7, 0x13, 0x08, 0xc0, 0xff, 0xff, 0xf7, 0x03,
+ 0x00, 0x00, 0xfe, 0xff, 0xe7, 0x01, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00,
+ 0x00, 0x00, 0x00, 0x88, 0x18, 0x00, 0x00, 0x00, 0xf8, 0xc7, 0xf0, 0x03,
+ 0x00, 0x00, 0xfe, 0x81, 0xc1, 0x3f, 0x00, 0x00, 0x06, 0x00, 0x01, 0x30,
+ 0x00, 0x00, 0x03, 0x00, 0x02, 0x40, 0x00, 0x80, 0x01, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach015.xbm b/games/x11/xroach/bitmaps/roach015.xbm
new file mode 100644
index 0000000..f5ad87e
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach015.xbm
@@ -0,0 +1,30 @@
+#define roach015_width 48
+#define roach015_height 48
+
+static char roach015_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x80, 0x00, 0x0c,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x07,
+ 0x00, 0x00, 0x00, 0x40, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x60, 0x3c, 0x00,
+ 0x00, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x10, 0x00, 0x10, 0x06, 0x00,
+ 0x00, 0x60, 0xfc, 0x30, 0x72, 0x04, 0x00, 0xc0, 0x9f, 0xe3, 0xf3, 0x1e,
+ 0x00, 0x00, 0x00, 0xfe, 0xfb, 0x1d, 0x00, 0x00, 0xc0, 0xff, 0xfb, 0x3d,
+ 0x00, 0x00, 0xf8, 0xff, 0xf9, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xfb, 0x3f,
+ 0x3c, 0x00, 0xff, 0xff, 0xfb, 0x07, 0x00, 0xc0, 0xff, 0x1f, 0xf8, 0x17,
+ 0x00, 0xe0, 0xff, 0xe1, 0xf7, 0x07, 0x00, 0xf0, 0x1f, 0xfe, 0xf7, 0x03,
+ 0x00, 0xf0, 0xe1, 0xff, 0xe7, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xcf, 0x01,
+ 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x7f, 0xfc,
+ 0x00, 0xc0, 0xff, 0x3f, 0xc3, 0x1f, 0x01, 0xc0, 0xff, 0x23, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x1c, 0x00,
+ 0x00, 0x00, 0x80, 0x07, 0x20, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x40, 0x00,
+ 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach030.xbm b/games/x11/xroach/bitmaps/roach030.xbm
new file mode 100644
index 0000000..ec28236
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach030.xbm
@@ -0,0 +1,30 @@
+#define roach030_width 48
+#define roach030_height 48
+
+static char roach030_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x00, 0x00, 0x10, 0x1e, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x07, 0x00, 0x00, 0x00, 0x00, 0x98, 0x01, 0x09,
+ 0x00, 0x00, 0x00, 0x8c, 0x01, 0x04, 0x00, 0x00, 0x00, 0x8c, 0xb8, 0x07,
+ 0x00, 0x00, 0x00, 0x84, 0x7c, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x8e,
+ 0x00, 0x00, 0x00, 0xf8, 0xfc, 0x1f, 0x00, 0x00, 0xe0, 0xff, 0xfc, 0x05,
+ 0x00, 0x04, 0x1e, 0xff, 0xfd, 0x17, 0x00, 0xf8, 0x87, 0xff, 0xf9, 0x03,
+ 0x00, 0xe0, 0xc0, 0xff, 0xf9, 0x07, 0x00, 0x00, 0xf0, 0x7f, 0xf0, 0x07,
+ 0x00, 0x00, 0xf8, 0x1f, 0xe7, 0x03, 0x00, 0x00, 0xfe, 0xcf, 0xcf, 0xc1,
+ 0x03, 0x00, 0xff, 0xf3, 0x1f, 0xe0, 0x00, 0x80, 0xff, 0xfc, 0xff, 0x3f,
+ 0x00, 0x80, 0x3f, 0xfe, 0xbf, 0x07, 0x00, 0xc0, 0x9f, 0xff, 0x07, 0x00,
+ 0x00, 0xc0, 0xe7, 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xf9, 0xff, 0x3c, 0x00,
+ 0x00, 0x00, 0xfe, 0xff, 0xf8, 0x01, 0x00, 0x00, 0xff, 0x8f, 0x00, 0x02,
+ 0x00, 0x00, 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach045.xbm b/games/x11/xroach/bitmaps/roach045.xbm
new file mode 100644
index 0000000..0ea6e2b
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach045.xbm
@@ -0,0 +1,30 @@
+#define roach045_width 48
+#define roach045_height 48
+
+static char roach045_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x01,
+ 0x00, 0x00, 0x00, 0xc0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x62, 0xc0, 0x43,
+ 0x00, 0x00, 0x00, 0x62, 0xfe, 0x13, 0x00, 0x00, 0x00, 0x23, 0xff, 0x07,
+ 0x00, 0x00, 0x00, 0x23, 0xff, 0x07, 0x00, 0x00, 0x00, 0x63, 0xff, 0x0b,
+ 0x00, 0x00, 0x00, 0x73, 0xff, 0x01, 0x00, 0x00, 0x00, 0x7e, 0xfe, 0x01,
+ 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x03, 0x00, 0x00, 0x40, 0xfe, 0xf9, 0x03,
+ 0x07, 0x00, 0xf0, 0xff, 0xf1, 0xc3, 0x00, 0x00, 0x18, 0xff, 0xc0, 0xe3,
+ 0x00, 0x00, 0x8e, 0x7f, 0x1e, 0x70, 0x00, 0x00, 0xc7, 0x3f, 0xff, 0x1f,
+ 0x00, 0xfc, 0xe3, 0x9f, 0x7f, 0x07, 0x00, 0xe0, 0xe1, 0xcf, 0x3f, 0x00,
+ 0x00, 0x00, 0xf0, 0xe7, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xf1, 0x1f, 0x00,
+ 0x00, 0x00, 0xfc, 0xfc, 0xe7, 0x0f, 0x00, 0x00, 0x7e, 0xfe, 0x03, 0x00,
+ 0x00, 0x00, 0x3e, 0xff, 0x03, 0x00, 0x00, 0x00, 0x9f, 0xff, 0x02, 0x00,
+ 0x00, 0x00, 0xcf, 0x7f, 0x03, 0x00, 0x00, 0x00, 0xe7, 0x1f, 0x03, 0x00,
+ 0x00, 0x00, 0xf2, 0x8f, 0x03, 0x00, 0x00, 0x00, 0xf8, 0x83, 0x01, 0x00,
+ 0x00, 0x00, 0xf8, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach060.xbm b/games/x11/xroach/bitmaps/roach060.xbm
new file mode 100644
index 0000000..145987a
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach060.xbm
@@ -0,0 +1,30 @@
+#define roach060_width 48
+#define roach060_height 48
+
+static char roach060_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10,
+ 0x00, 0x00, 0x00, 0x60, 0x00, 0x08, 0x00, 0x00, 0x00, 0x30, 0x74, 0x04,
+ 0x00, 0x00, 0x00, 0x30, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x18, 0xfc, 0x01,
+ 0x00, 0x00, 0x00, 0x88, 0xff, 0x00, 0x00, 0x00, 0x40, 0xc8, 0xff, 0x02,
+ 0x00, 0x00, 0xc0, 0xd8, 0x7f, 0x00, 0x00, 0x00, 0xc0, 0xd8, 0xff, 0x80,
+ 0x01, 0x00, 0x80, 0x90, 0xff, 0xe1, 0x00, 0x00, 0x80, 0x18, 0xff, 0x61,
+ 0x00, 0x00, 0x80, 0x3f, 0xfe, 0x33, 0x00, 0x00, 0x00, 0x7f, 0xfc, 0x19,
+ 0x00, 0x00, 0x00, 0xfe, 0xf1, 0x18, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x0f,
+ 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0xe0, 0x7f, 0x7f, 0x00,
+ 0x00, 0x00, 0x90, 0xbf, 0x7f, 0x00, 0x00, 0x00, 0x98, 0xbf, 0x3f, 0x38,
+ 0x00, 0x00, 0xd8, 0xdf, 0x7f, 0x0f, 0x00, 0x00, 0xcc, 0xef, 0xdf, 0x01,
+ 0x00, 0x00, 0xe6, 0xef, 0x0f, 0x00, 0x00, 0xc0, 0xe3, 0xf7, 0x0f, 0x00,
+ 0x00, 0x00, 0xe0, 0xf7, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0xfb, 0x1f, 0x00,
+ 0x00, 0x00, 0xf0, 0xf9, 0x1b, 0x00, 0x00, 0x00, 0xf0, 0xfd, 0x19, 0x00,
+ 0x00, 0x00, 0xf8, 0xfe, 0x08, 0x00, 0x00, 0x00, 0x78, 0x7e, 0x0c, 0x00,
+ 0x00, 0x00, 0x70, 0x3f, 0x04, 0x00, 0x00, 0x00, 0x30, 0x3f, 0x06, 0x00,
+ 0x00, 0x00, 0x80, 0x1f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x07, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach075.xbm b/games/x11/xroach/bitmaps/roach075.xbm
new file mode 100644
index 0000000..5a85ba4
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach075.xbm
@@ -0,0 +1,30 @@
+#define roach075_width 48
+#define roach075_height 48
+
+static char roach075_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x06, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x84, 0x06, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3e, 0x00,
+ 0x00, 0x00, 0x00, 0x06, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x06, 0x1e, 0x60,
+ 0x00, 0x00, 0x00, 0xc6, 0x3f, 0x20, 0x00, 0x00, 0x00, 0xe6, 0x3f, 0x18,
+ 0x00, 0x00, 0x00, 0xf2, 0x7f, 0x18, 0x00, 0x00, 0x08, 0xf2, 0x7f, 0x18,
+ 0x00, 0x00, 0x30, 0xf6, 0xff, 0x0c, 0x00, 0x00, 0x20, 0xe4, 0xff, 0x0c,
+ 0x00, 0x00, 0x60, 0x98, 0xff, 0x0c, 0x00, 0x00, 0x40, 0x38, 0x38, 0x06,
+ 0x00, 0x00, 0xc0, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x80, 0xff, 0xfe, 0x00,
+ 0x00, 0x00, 0x00, 0x7e, 0xfe, 0x78, 0x00, 0x00, 0x00, 0x7e, 0x7f, 0x1c,
+ 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x0e, 0x00, 0x00, 0xc0, 0x7f, 0xff, 0x03,
+ 0x00, 0x00, 0xc0, 0x3e, 0x7f, 0x00, 0x00, 0x00, 0x20, 0xbf, 0x3f, 0x00,
+ 0x00, 0x00, 0x20, 0xbf, 0x3f, 0x00, 0x00, 0x00, 0x20, 0xbf, 0x7f, 0x00,
+ 0x00, 0x00, 0x10, 0x9f, 0x5f, 0x00, 0x00, 0x00, 0x10, 0xdf, 0x5f, 0x00,
+ 0x00, 0x00, 0x18, 0xdf, 0x4f, 0x00, 0x00, 0x00, 0x0c, 0xdf, 0x4f, 0x00,
+ 0x00, 0x00, 0x86, 0xcf, 0x47, 0x00, 0x00, 0x00, 0x80, 0xef, 0x47, 0x00,
+ 0x00, 0x00, 0x80, 0xef, 0x63, 0x00, 0x00, 0x00, 0x00, 0xef, 0x63, 0x00,
+ 0x00, 0x00, 0x00, 0xe7, 0x41, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x81, 0x00,
+ 0x00, 0x00, 0x00, 0xf0, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach090.xbm b/games/x11/xroach/bitmaps/roach090.xbm
new file mode 100644
index 0000000..78904ee
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach090.xbm
@@ -0,0 +1,30 @@
+#define roach090_width 48
+#define roach090_height 48
+
+static char roach090_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0xc0, 0xc0, 0x03, 0x0c, 0x00, 0x00, 0xc0, 0xd0, 0x07, 0x0c,
+ 0x00, 0x00, 0xc0, 0xc0, 0x07, 0x04, 0x00, 0x00, 0xc0, 0x60, 0x07, 0x06,
+ 0x00, 0x00, 0xc0, 0x80, 0x03, 0x06, 0x00, 0x00, 0xc0, 0xf0, 0x3f, 0x06,
+ 0x00, 0x00, 0x80, 0xf8, 0x7f, 0x06, 0x00, 0x00, 0x80, 0xf9, 0x7f, 0x06,
+ 0x00, 0x00, 0x80, 0xf9, 0x7f, 0x02, 0x00, 0x00, 0x00, 0xfb, 0x7f, 0x03,
+ 0x00, 0x00, 0x00, 0xf3, 0x9f, 0x61, 0x00, 0x00, 0x18, 0x1c, 0x70, 0x30,
+ 0x00, 0x00, 0x30, 0xfc, 0x7e, 0x18, 0x00, 0x00, 0x60, 0xfc, 0x7e, 0x0c,
+ 0x00, 0x00, 0xc0, 0xfc, 0x7e, 0x06, 0x00, 0x00, 0xc0, 0xff, 0xfe, 0x03,
+ 0x00, 0x00, 0x00, 0xfc, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7e, 0x00,
+ 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfe, 0x01,
+ 0x00, 0x00, 0x00, 0xff, 0x7e, 0x01, 0x00, 0x00, 0x80, 0xfc, 0x7e, 0x03,
+ 0x00, 0x00, 0x80, 0xfc, 0x7e, 0x02, 0x00, 0x00, 0x80, 0xfc, 0x7e, 0x02,
+ 0x00, 0x00, 0x80, 0xf8, 0x3e, 0x06, 0x00, 0x00, 0xc0, 0xf8, 0x3e, 0x06,
+ 0x00, 0x00, 0xc0, 0xf8, 0x3e, 0x06, 0x00, 0x00, 0xc0, 0xf8, 0x3e, 0x04,
+ 0x00, 0x00, 0xc0, 0xf8, 0x3e, 0x0c, 0x00, 0x00, 0x60, 0xf8, 0x3e, 0x08,
+ 0x00, 0x00, 0x20, 0xf8, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1e, 0x00,
+ 0x00, 0x00, 0x00, 0xf0, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach105.xbm b/games/x11/xroach/bitmaps/roach105.xbm
new file mode 100644
index 0000000..a0bcc80
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach105.xbm
@@ -0,0 +1,30 @@
+#define roach105_width 48
+#define roach105_height 48
+
+static char roach105_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc1, 0x00,
+ 0x00, 0x00, 0x06, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x1c, 0xfa, 0xc1, 0x00,
+ 0x00, 0x00, 0x18, 0x88, 0x83, 0x00, 0x00, 0x00, 0x10, 0xe0, 0x9f, 0x00,
+ 0x00, 0x00, 0x30, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0x20, 0xfc, 0x9f, 0x10,
+ 0x00, 0x00, 0x60, 0xfe, 0x5f, 0x18, 0x00, 0x00, 0x60, 0xfe, 0x4f, 0x0c,
+ 0x00, 0x00, 0x60, 0xfc, 0x27, 0x0c, 0x00, 0x00, 0xc0, 0x78, 0x3c, 0x0e,
+ 0x00, 0x00, 0x80, 0x07, 0x7c, 0x06, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0x03,
+ 0x00, 0x00, 0x08, 0xfc, 0xfe, 0x00, 0x00, 0x00, 0x78, 0xfc, 0xfd, 0x00,
+ 0x00, 0x00, 0xe0, 0xfc, 0xfd, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xfd, 0x07,
+ 0x00, 0x00, 0x00, 0xf8, 0xfd, 0x05, 0x00, 0x00, 0x00, 0xf8, 0xfb, 0x05,
+ 0x00, 0x00, 0x00, 0xf8, 0xfb, 0x09, 0x00, 0x00, 0x00, 0xfc, 0xfb, 0x19,
+ 0x00, 0x00, 0x00, 0xfc, 0xf3, 0x19, 0x00, 0x00, 0x00, 0xe4, 0xf7, 0x31,
+ 0x00, 0x00, 0x00, 0xe4, 0xf7, 0x31, 0x00, 0x00, 0x00, 0xe4, 0xf7, 0xc1,
+ 0x00, 0x00, 0x00, 0xc4, 0xe7, 0x03, 0x01, 0x00, 0x00, 0xcc, 0xef, 0x03,
+ 0x00, 0x00, 0x00, 0x8c, 0xef, 0x03, 0x00, 0x00, 0x00, 0x8c, 0xef, 0x01,
+ 0x00, 0x00, 0x00, 0x0c, 0xcf, 0x01, 0x00, 0x00, 0x00, 0x0c, 0xde, 0x01,
+ 0x00, 0x00, 0x00, 0x06, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach120.xbm b/games/x11/xroach/bitmaps/roach120.xbm
new file mode 100644
index 0000000..9087d9d
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach120.xbm
@@ -0,0 +1,30 @@
+#define roach120_width 48
+#define roach120_height 48
+
+static char roach120_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x10, 0x08, 0x18, 0x00, 0x00, 0x00, 0x00, 0x28, 0x18, 0x00,
+ 0x00, 0x00, 0x00, 0x1e, 0x38, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x9f, 0x63, 0x00, 0x00, 0x00, 0x80, 0xe6, 0x67, 0x04,
+ 0x00, 0x80, 0x00, 0xfa, 0x27, 0x04, 0x00, 0x00, 0x07, 0xfc, 0x2f, 0x06,
+ 0x00, 0x00, 0x0c, 0xfc, 0x07, 0x06, 0x00, 0x00, 0x18, 0xfe, 0x37, 0x02,
+ 0x00, 0x00, 0x18, 0xff, 0x3b, 0x02, 0x00, 0x00, 0x30, 0xfe, 0xfc, 0x03,
+ 0x00, 0x00, 0x60, 0x3e, 0xfc, 0x00, 0x00, 0x00, 0x60, 0xc0, 0xfe, 0x00,
+ 0x00, 0x00, 0xc0, 0xff, 0xfd, 0x07, 0x00, 0x00, 0x00, 0xfc, 0xfd, 0x0f,
+ 0x00, 0x00, 0x00, 0xfc, 0xfb, 0x1b, 0x00, 0x00, 0x20, 0xf8, 0xf3, 0x37,
+ 0x00, 0x00, 0xf0, 0xf9, 0xf7, 0x67, 0x00, 0x00, 0xc0, 0xff, 0xef, 0xc7,
+ 0x00, 0x00, 0x00, 0xe0, 0xef, 0x8f, 0x01, 0x00, 0x00, 0xe0, 0xdf, 0x0f,
+ 0x0f, 0x00, 0x00, 0xe0, 0x9f, 0x0f, 0x00, 0x00, 0x00, 0xb0, 0xbf, 0x1f,
+ 0x00, 0x00, 0x00, 0x20, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x1e,
+ 0x00, 0x00, 0x00, 0x20, 0xfe, 0x3e, 0x00, 0x00, 0x00, 0x60, 0xfc, 0x3c,
+ 0x00, 0x00, 0x00, 0x40, 0xf8, 0x3d, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0x19,
+ 0x00, 0x00, 0x00, 0x80, 0xf1, 0x03, 0x00, 0x00, 0x00, 0x80, 0xc1, 0x03,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach135.xbm b/games/x11/xroach/bitmaps/roach135.xbm
new file mode 100644
index 0000000..2f330d4
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach135.xbm
@@ -0,0 +1,30 @@
+#define roach135_width 48
+#define roach135_height 48
+
+static char roach135_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x40, 0xc0, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0e, 0x00,
+ 0x00, 0x00, 0x04, 0x03, 0x88, 0x01, 0x00, 0x00, 0xd8, 0xef, 0x88, 0x01,
+ 0x00, 0x00, 0xc0, 0xff, 0x89, 0x01, 0x00, 0x00, 0x80, 0xfd, 0x8b, 0x01,
+ 0x00, 0x00, 0xa0, 0xfc, 0x9f, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01,
+ 0x00, 0x00, 0x00, 0xfe, 0x7d, 0x00, 0x00, 0xc0, 0x01, 0xff, 0xfe, 0x00,
+ 0x00, 0x00, 0x06, 0x7f, 0xfe, 0x07, 0x00, 0x00, 0x0e, 0x3f, 0xfe, 0x1f,
+ 0x00, 0x00, 0x3c, 0xcf, 0xfd, 0x27, 0x00, 0x00, 0x70, 0xe0, 0xfb, 0xc7,
+ 0x00, 0x00, 0xe0, 0xff, 0xf7, 0x8f, 0x7f, 0x00, 0x00, 0xf8, 0xef, 0x1f,
+ 0x07, 0x00, 0x00, 0xf0, 0xdf, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xbf, 0x7f,
+ 0x00, 0x00, 0x80, 0xf7, 0x7f, 0x7e, 0x00, 0x00, 0xe0, 0xdf, 0xff, 0xfc,
+ 0x00, 0x00, 0x00, 0x80, 0xff, 0xf9, 0x01, 0x00, 0x00, 0x80, 0xfe, 0xf3,
+ 0x01, 0x00, 0x00, 0x80, 0xfd, 0xe7, 0x01, 0x00, 0x00, 0x00, 0xf1, 0xcf,
+ 0x01, 0x00, 0x00, 0x00, 0xe3, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x86, 0x3f,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach150.xbm b/games/x11/xroach/bitmaps/roach150.xbm
new file mode 100644
index 0000000..47d9d6f
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach150.xbm
@@ -0,0 +1,30 @@
+#define roach150_width 48
+#define roach150_height 48
+
+static char roach150_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x04, 0x70, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xe0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x80, 0x21, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00,
+ 0x00, 0x00, 0xc0, 0x7b, 0x42, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x42, 0x00,
+ 0x00, 0x00, 0xe1, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xfe, 0x3f, 0x04,
+ 0x00, 0x00, 0x60, 0xfe, 0xfe, 0x3f, 0x00, 0x00, 0x50, 0xff, 0xfe, 0x61,
+ 0x70, 0x00, 0x00, 0x7f, 0xfe, 0x87, 0x0f, 0x00, 0x00, 0x7f, 0xff, 0x0f,
+ 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x3f, 0x00, 0x00, 0x07, 0xdf, 0xf3, 0x7f,
+ 0x00, 0x80, 0x1f, 0xee, 0xcf, 0xff, 0x00, 0x00, 0x38, 0xf0, 0x3f, 0xff,
+ 0x01, 0x00, 0xe0, 0xff, 0xff, 0xfc, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xf3,
+ 0x07, 0x00, 0x00, 0xc0, 0xff, 0xcf, 0x07, 0x00, 0x00, 0xc0, 0xff, 0x3f,
+ 0x07, 0x00, 0x00, 0x7c, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x3e, 0xfc, 0xff,
+ 0x01, 0x00, 0x00, 0x00, 0xec, 0xff, 0x03, 0x00, 0x00, 0x00, 0x18, 0xff,
+ 0x01, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach165.xbm b/games/x11/xroach/bitmaps/roach165.xbm
new file mode 100644
index 0000000..2f12876
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach165.xbm
@@ -0,0 +1,30 @@
+#define roach165_width 48
+#define roach165_height 48
+
+static char roach165_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x06, 0x00,
+ 0x00, 0x00, 0x80, 0x1f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x1c, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0x00, 0x80, 0x00, 0xc0, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, 0x00, 0x44, 0xf8, 0x1f, 0x3e,
+ 0x0e, 0x00, 0x30, 0x7c, 0xff, 0xe0, 0x07, 0x00, 0xe0, 0x7e, 0xff, 0x03,
+ 0x00, 0x00, 0xf0, 0x7e, 0xff, 0x07, 0x00, 0x00, 0x70, 0xff, 0xff, 0x3f,
+ 0x00, 0x00, 0x70, 0xff, 0xff, 0xff, 0x00, 0x00, 0x60, 0x7f, 0xff, 0xff,
+ 0x01, 0x00, 0x50, 0x7f, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x3f, 0x1f, 0xf8,
+ 0x1f, 0x00, 0x00, 0xbf, 0xff, 0x01, 0x1f, 0x00, 0x00, 0xde, 0xff, 0x1f,
+ 0x00, 0x00, 0x00, 0xec, 0xff, 0xff, 0x01, 0x00, 0x3e, 0xf0, 0xff, 0xff,
+ 0x07, 0x00, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x07, 0xf9, 0xff,
+ 0x07, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x30, 0x00,
+ 0x00, 0x00, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x1f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach180.xbm b/games/x11/xroach/bitmaps/roach180.xbm
new file mode 100644
index 0000000..e3811dc
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach180.xbm
@@ -0,0 +1,30 @@
+#define roach180_width 48
+#define roach180_height 48
+
+static char roach180_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00,
+ 0x02, 0x00, 0x08, 0x80, 0x01, 0x00, 0x01, 0x00, 0xf8, 0x81, 0x03, 0x80,
+ 0x01, 0x00, 0xe0, 0x0f, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x10, 0x84, 0x07,
+ 0x00, 0x00, 0x00, 0x20, 0x84, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03,
+ 0x00, 0x00, 0x00, 0x8c, 0xff, 0xff, 0x01, 0x00, 0x00, 0x9c, 0xff, 0xff,
+ 0x07, 0x00, 0x20, 0xbe, 0xff, 0xff, 0x0f, 0x00, 0xe0, 0x7f, 0xff, 0xff,
+ 0x1f, 0x00, 0xf0, 0x7f, 0xff, 0xff, 0x0f, 0x00, 0x70, 0x7f, 0x00, 0x00,
+ 0x00, 0x00, 0x70, 0x7f, 0xff, 0xff, 0x0f, 0x00, 0x70, 0x7f, 0xff, 0xff,
+ 0x1f, 0x00, 0x48, 0x7f, 0xff, 0xff, 0x1f, 0x80, 0x20, 0x7f, 0xff, 0xff,
+ 0x0f, 0x00, 0x00, 0xbe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x9c, 0xff, 0x1f,
+ 0x00, 0x00, 0x00, 0x48, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x20, 0xc4, 0x00,
+ 0x00, 0x00, 0xf0, 0x1f, 0x8c, 0xff, 0x00, 0x00, 0xf8, 0x03, 0x07, 0x80,
+ 0x01, 0x00, 0x18, 0x80, 0x03, 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00,
+ 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach195.xbm b/games/x11/xroach/bitmaps/roach195.xbm
new file mode 100644
index 0000000..303008b
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach195.xbm
@@ -0,0 +1,30 @@
+#define roach195_width 48
+#define roach195_height 48
+
+static char roach195_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x1c,
+ 0x00, 0x00, 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0xe0, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xff,
+ 0x01, 0x00, 0xe7, 0x07, 0xff, 0xff, 0x07, 0x00, 0xfc, 0x1c, 0xff, 0xff,
+ 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x3f,
+ 0x08, 0x00, 0x00, 0xde, 0xff, 0xc3, 0x1f, 0x00, 0x00, 0xbe, 0x3f, 0xfc,
+ 0x1f, 0x00, 0x00, 0x7f, 0xc3, 0xff, 0x1f, 0x00, 0x20, 0x7f, 0xfc, 0xff,
+ 0x0f, 0x00, 0x60, 0x7f, 0xff, 0xff, 0x01, 0x00, 0x70, 0x7f, 0xff, 0x7f,
+ 0x00, 0x00, 0x70, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xfe, 0xff, 0x07,
+ 0x00, 0x00, 0xe0, 0xfe, 0xff, 0xc1, 0x03, 0x00, 0x10, 0xfd, 0x7f, 0xff,
+ 0x0f, 0x00, 0xc0, 0x78, 0x11, 0x00, 0x18, 0x00, 0x02, 0xb0, 0x20, 0x00,
+ 0x00, 0x00, 0x01, 0x80, 0x30, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x38, 0x00,
+ 0x00, 0x00, 0x00, 0x7c, 0x1c, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x0c, 0x00,
+ 0x00, 0x00, 0xc0, 0x01, 0x04, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach210.xbm b/games/x11/xroach/bitmaps/roach210.xbm
new file mode 100644
index 0000000..11f9b02
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach210.xbm
@@ -0,0 +1,30 @@
+#define roach210_width 48
+#define roach210_height 48
+
+static char roach210_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0,
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0xff, 0x01, 0x00, 0x00, 0x03, 0x8c, 0xff,
+ 0x01, 0x00, 0x00, 0x3e, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x60, 0xfc, 0x1f,
+ 0x04, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xc3,
+ 0x0f, 0x00, 0x80, 0xe7, 0xff, 0xf0, 0x07, 0x00, 0xf0, 0xf8, 0x3f, 0xfc,
+ 0x03, 0x00, 0x7f, 0xf0, 0x1f, 0xff, 0x01, 0x00, 0x0e, 0xcc, 0xc7, 0xff,
+ 0x00, 0x00, 0x00, 0x9e, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x3f,
+ 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x0f, 0x0f, 0x00, 0x00, 0xff, 0xfe, 0x87,
+ 0x33, 0x00, 0xa0, 0xff, 0xfe, 0xff, 0x00, 0x00, 0xe0, 0xff, 0xfd, 0x1c,
+ 0x00, 0x00, 0xf0, 0xff, 0x7d, 0x00, 0x00, 0x00, 0xe3, 0xfd, 0xfd, 0x00,
+ 0x00, 0x00, 0xe0, 0xf9, 0x85, 0x00, 0x00, 0x00, 0xc0, 0xf1, 0xc7, 0x00,
+ 0x00, 0x00, 0x40, 0xc2, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00,
+ 0x00, 0x00, 0x20, 0x80, 0x63, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0x00,
+ 0x00, 0x00, 0x08, 0x70, 0x20, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach225.xbm b/games/x11/xroach/bitmaps/roach225.xbm
new file mode 100644
index 0000000..cd17ce1
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach225.xbm
@@ -0,0 +1,30 @@
+#define roach225_width 48
+#define roach225_height 48
+
+static char roach225_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x18, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x3f,
+ 0x00, 0x00, 0x00, 0x00, 0xc6, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x9f,
+ 0x01, 0x00, 0x00, 0x00, 0xf1, 0xcf, 0x01, 0x00, 0x00, 0x00, 0xf9, 0xe7,
+ 0x01, 0x00, 0x00, 0x00, 0xff, 0xf3, 0x01, 0x00, 0x00, 0x0f, 0xff, 0xf9,
+ 0x01, 0x00, 0xc0, 0x1f, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x7e,
+ 0x00, 0x00, 0x00, 0xe0, 0x9f, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x3f,
+ 0x3e, 0x00, 0x80, 0xff, 0xe7, 0x1f, 0x07, 0x00, 0xc0, 0xf0, 0xf3, 0xdf,
+ 0x03, 0x00, 0x70, 0xe0, 0xf9, 0xcf, 0x00, 0x00, 0x38, 0x3c, 0xfc, 0x67,
+ 0x00, 0x00, 0x1e, 0x7e, 0xfe, 0x1f, 0x00, 0x80, 0x0f, 0xfe, 0xfc, 0x01,
+ 0x00, 0x00, 0x00, 0xfe, 0xfd, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xfb, 0x01,
+ 0x00, 0x00, 0x00, 0xff, 0x7b, 0x03, 0x00, 0x00, 0x00, 0xfd, 0x0f, 0x03,
+ 0x00, 0x00, 0x80, 0xf9, 0x1f, 0x03, 0x00, 0x00, 0xc0, 0xe3, 0x1f, 0x03,
+ 0x00, 0x00, 0x80, 0x9f, 0x1b, 0x01, 0x00, 0x00, 0x00, 0x07, 0x18, 0x01,
+ 0x00, 0x00, 0x02, 0x08, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
+ 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach240.xbm b/games/x11/xroach/bitmaps/roach240.xbm
new file mode 100644
index 0000000..467ac9d
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach240.xbm
@@ -0,0 +1,30 @@
+#define roach240_width 48
+#define roach240_height 48
+
+static char roach240_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x80, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x80, 0xf1, 0x11,
+ 0x00, 0x00, 0x00, 0x80, 0xf8, 0x18, 0x00, 0x00, 0x00, 0x80, 0xf8, 0x3c,
+ 0x00, 0x00, 0x00, 0x40, 0x7c, 0x3c, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x3e,
+ 0x00, 0x00, 0x00, 0x20, 0x3f, 0x1e, 0x00, 0x00, 0x00, 0xa0, 0x3f, 0x1f,
+ 0x00, 0x00, 0x00, 0xe0, 0x9f, 0x1f, 0x3e, 0x00, 0x00, 0xc0, 0x9f, 0x0f,
+ 0x07, 0x00, 0x00, 0xc0, 0xcf, 0x8f, 0x00, 0x00, 0x00, 0xe6, 0xe7, 0xcf,
+ 0x00, 0x00, 0xc0, 0xf9, 0xe7, 0x47, 0x00, 0x00, 0x00, 0xf0, 0xf3, 0x67,
+ 0x00, 0x00, 0x00, 0xf8, 0xf3, 0x37, 0x00, 0x00, 0x00, 0xf8, 0xf9, 0x1f,
+ 0x00, 0x00, 0x00, 0xff, 0xfd, 0x07, 0x00, 0x00, 0xc0, 0x03, 0xfc, 0x01,
+ 0x00, 0x00, 0x60, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x30, 0xfc, 0xfc, 0x03,
+ 0x00, 0x00, 0x30, 0xfe, 0xfb, 0x06, 0x00, 0x00, 0x30, 0xfe, 0x77, 0x06,
+ 0x00, 0x00, 0x1c, 0xfc, 0x37, 0x06, 0x00, 0x00, 0x02, 0xfc, 0x2f, 0x06,
+ 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x04, 0x00, 0x00, 0x00, 0xe5, 0x6f, 0x0c,
+ 0x00, 0x00, 0x00, 0x8e, 0x6f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x60, 0x00,
+ 0x00, 0x00, 0x00, 0x3e, 0x20, 0x00, 0x00, 0x00, 0x80, 0xf0, 0x30, 0x00,
+ 0x00, 0x00, 0x40, 0x10, 0x30, 0x00, 0x00, 0x00, 0x00, 0x10, 0x18, 0x00,
+ 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach255.xbm b/games/x11/xroach/bitmaps/roach255.xbm
new file mode 100644
index 0000000..de5cea6
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach255.xbm
@@ -0,0 +1,30 @@
+#define roach255_width 48
+#define roach255_height 48
+
+static char roach255_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x02, 0x18, 0x00, 0x00, 0x00, 0x00, 0x06, 0x9c, 0x01,
+ 0x00, 0x00, 0x00, 0x0c, 0x9e, 0x03, 0x00, 0x00, 0x00, 0x18, 0x8f, 0x03,
+ 0x00, 0x00, 0x00, 0x18, 0xcf, 0x03, 0x00, 0x00, 0x00, 0x98, 0xcf, 0x03,
+ 0x00, 0x00, 0x00, 0x88, 0xcf, 0x83, 0x01, 0x00, 0x00, 0xc8, 0xc7, 0xe3,
+ 0x00, 0x00, 0x00, 0xc8, 0xe7, 0x63, 0x00, 0x00, 0x00, 0xec, 0xe7, 0x33,
+ 0x00, 0x00, 0x00, 0xec, 0xe7, 0x33, 0x00, 0x00, 0x00, 0xf8, 0xe3, 0x13,
+ 0x00, 0x00, 0x00, 0xf8, 0xf3, 0x1b, 0x00, 0x00, 0x00, 0xf0, 0xf3, 0x1b,
+ 0x00, 0x00, 0x00, 0xf0, 0xf3, 0x09, 0x00, 0x00, 0x80, 0xff, 0xf9, 0x07,
+ 0x00, 0x00, 0xc0, 0xf8, 0xf9, 0x01, 0x00, 0x00, 0xe0, 0xf8, 0xf9, 0x01,
+ 0x00, 0x00, 0x10, 0xfc, 0xf9, 0x01, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x07,
+ 0x00, 0x00, 0x00, 0x02, 0xfc, 0x0c, 0x00, 0x00, 0x00, 0x01, 0xf8, 0x0c,
+ 0x00, 0x00, 0x80, 0xf8, 0x63, 0x18, 0x00, 0x00, 0xc0, 0xfc, 0x6f, 0x18,
+ 0x00, 0x00, 0x60, 0xfc, 0x9f, 0x30, 0x00, 0x00, 0x60, 0xfc, 0x3f, 0x01,
+ 0x00, 0x00, 0x60, 0xf8, 0x3f, 0x01, 0x00, 0x00, 0x20, 0xe0, 0x3f, 0x01,
+ 0x00, 0x00, 0x38, 0xb0, 0x8f, 0x01, 0x00, 0x00, 0x08, 0xf4, 0x83, 0x01,
+ 0x00, 0x00, 0x00, 0xf0, 0x81, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x85, 0x00,
+ 0x00, 0x00, 0x00, 0x08, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach270.xbm b/games/x11/xroach/bitmaps/roach270.xbm
new file mode 100644
index 0000000..d3a0787
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach270.xbm
@@ -0,0 +1,30 @@
+#define roach270_width 48
+#define roach270_height 48
+
+static char roach270_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00,
+ 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x00, 0x00, 0x20, 0xf0, 0x3c, 0x18,
+ 0x00, 0x00, 0xc0, 0xf0, 0x3c, 0x0c, 0x00, 0x00, 0x80, 0xf1, 0x3c, 0x06,
+ 0x00, 0x00, 0x00, 0xf9, 0x7c, 0x06, 0x00, 0x00, 0x00, 0xf9, 0x7c, 0x06,
+ 0x00, 0x00, 0x00, 0xf9, 0x7c, 0x06, 0x00, 0x00, 0x00, 0xf9, 0x7c, 0x06,
+ 0x00, 0x00, 0x00, 0xf9, 0x7c, 0x06, 0x00, 0x00, 0x00, 0xfb, 0x7c, 0x02,
+ 0x00, 0x00, 0x00, 0xff, 0xfc, 0x02, 0x00, 0x00, 0x00, 0xfe, 0xfc, 0x01,
+ 0x00, 0x00, 0x00, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfc, 0x00,
+ 0x00, 0x00, 0x00, 0xf8, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfc, 0x07,
+ 0x00, 0x00, 0x80, 0xfc, 0xfc, 0x0c, 0x00, 0x00, 0xc0, 0xfc, 0xfc, 0x18,
+ 0x00, 0x00, 0x60, 0x78, 0xfc, 0x10, 0x00, 0x00, 0x30, 0x18, 0xc0, 0x20,
+ 0x00, 0x00, 0x00, 0xc6, 0x1f, 0x01, 0x00, 0x00, 0x00, 0xe3, 0x7f, 0x02,
+ 0x00, 0x00, 0x00, 0xf1, 0xff, 0x06, 0x00, 0x00, 0x80, 0xf1, 0xff, 0x06,
+ 0x00, 0x00, 0x80, 0xf1, 0xff, 0x06, 0x00, 0x00, 0x80, 0xe1, 0x7f, 0x06,
+ 0x00, 0x00, 0x80, 0x81, 0x1f, 0x06, 0x00, 0x00, 0x80, 0x81, 0x0f, 0x04,
+ 0x00, 0x00, 0x80, 0x81, 0x2f, 0x04, 0x00, 0x00, 0xc0, 0x80, 0x0f, 0x0c,
+ 0x00, 0x00, 0x40, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach285.xbm b/games/x11/xroach/bitmaps/roach285.xbm
new file mode 100644
index 0000000..5e2af7a
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach285.xbm
@@ -0,0 +1,30 @@
+#define roach285_width 48
+#define roach285_height 48
+
+static char roach285_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x00, 0x00, 0xe6, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0xe6, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x63, 0x00,
+ 0x00, 0x00, 0x00, 0xcf, 0x47, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x47, 0x00,
+ 0x00, 0x00, 0x03, 0xdf, 0x4f, 0x00, 0x00, 0x00, 0x1c, 0x9f, 0xcf, 0x00,
+ 0x00, 0x00, 0x30, 0x9f, 0x9f, 0x00, 0x00, 0x00, 0x30, 0xbf, 0x9f, 0x00,
+ 0x00, 0x00, 0x20, 0xbf, 0xbf, 0x00, 0x00, 0x00, 0x40, 0x3e, 0xff, 0x00,
+ 0x00, 0x00, 0x40, 0x3e, 0x7f, 0x00, 0x00, 0x00, 0xc0, 0x7e, 0x7f, 0x00,
+ 0x00, 0x00, 0xc0, 0x7f, 0x7f, 0x03, 0x00, 0x00, 0x00, 0x7f, 0xfe, 0x07,
+ 0x00, 0x00, 0x00, 0xfe, 0xfe, 0x1c, 0x00, 0x00, 0x00, 0xfc, 0xfe, 0x18,
+ 0x00, 0x00, 0x00, 0xfc, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0xfd, 0x00,
+ 0x00, 0x00, 0x00, 0xfd, 0x01, 0x07, 0x00, 0x00, 0x80, 0x7c, 0xf8, 0x0e,
+ 0x00, 0x00, 0xc0, 0xb8, 0xff, 0x0d, 0x00, 0x00, 0x40, 0xd8, 0xff, 0x09,
+ 0x00, 0x00, 0x00, 0xcc, 0xff, 0x19, 0x00, 0x00, 0x00, 0xee, 0xff, 0x19,
+ 0x00, 0x00, 0x00, 0xe6, 0xff, 0x18, 0x00, 0x00, 0x00, 0xc6, 0x7f, 0x30,
+ 0x00, 0x00, 0x00, 0x86, 0x7f, 0x60, 0x00, 0x00, 0x00, 0x06, 0x7e, 0xc1,
+ 0x00, 0x00, 0x00, 0x04, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xbc, 0x00,
+ 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach300.xbm b/games/x11/xroach/bitmaps/roach300.xbm
new file mode 100644
index 0000000..ca4e89b
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach300.xbm
@@ -0,0 +1,30 @@
+#define roach300_width 48
+#define roach300_height 48
+
+static char roach300_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x06, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x1f, 0x06, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x04, 0x00,
+ 0x00, 0x00, 0x60, 0x7c, 0x0c, 0x00, 0x00, 0x00, 0xe0, 0x7c, 0x0c, 0x00,
+ 0x00, 0x00, 0xf0, 0xf8, 0x08, 0x00, 0x00, 0x00, 0xe0, 0xf9, 0x11, 0x00,
+ 0x00, 0x00, 0xe0, 0xf3, 0x13, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0x17, 0x00,
+ 0x00, 0x00, 0xc0, 0xe7, 0x1f, 0x00, 0x00, 0xc0, 0xc7, 0xc7, 0x1f, 0x00,
+ 0x00, 0x00, 0xcc, 0xcf, 0x9f, 0x00, 0x00, 0x00, 0x88, 0x9f, 0xff, 0x07,
+ 0x00, 0x00, 0x98, 0x9f, 0xff, 0x3c, 0x00, 0x00, 0xb0, 0x3f, 0x7f, 0x00,
+ 0x00, 0x00, 0x60, 0x7f, 0xff, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0xfe, 0x00,
+ 0x00, 0x00, 0x00, 0xfe, 0x7e, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x1c,
+ 0x00, 0x00, 0x00, 0xfc, 0xf1, 0x19, 0x00, 0x00, 0x00, 0x7e, 0xf8, 0x33,
+ 0x00, 0x00, 0x00, 0x79, 0xfc, 0x63, 0x00, 0x00, 0x80, 0x31, 0xfe, 0x63,
+ 0x00, 0x00, 0x80, 0x31, 0xff, 0xc3, 0x01, 0x00, 0x80, 0x91, 0xff, 0x01,
+ 0x03, 0x00, 0x80, 0x91, 0xff, 0x04, 0x00, 0x00, 0x80, 0x98, 0x7f, 0x01,
+ 0x00, 0x00, 0x00, 0x18, 0xff, 0x03, 0x00, 0x00, 0x00, 0x10, 0xf0, 0x05,
+ 0x00, 0x00, 0x00, 0x30, 0x60, 0x08, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x60, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach315.xbm b/games/x11/xroach/bitmaps/roach315.xbm
new file mode 100644
index 0000000..922698a
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach315.xbm
@@ -0,0 +1,30 @@
+#define roach315_width 48
+#define roach315_height 48
+
+static char roach315_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x60, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0xf0, 0xe1, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc7, 0x01, 0x00,
+ 0x00, 0x00, 0xe0, 0x9f, 0x01, 0x00, 0x00, 0x00, 0xc6, 0x3f, 0x02, 0x00,
+ 0x00, 0x00, 0x8e, 0x7f, 0x06, 0x00, 0x00, 0x00, 0x1e, 0xff, 0x06, 0x00,
+ 0x00, 0x00, 0x3e, 0xfe, 0xc3, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xe7, 0x1f,
+ 0x00, 0x00, 0xfc, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xf1, 0x1f, 0x00,
+ 0x00, 0x00, 0xf8, 0xe7, 0x3f, 0x00, 0x00, 0x80, 0xf1, 0xcf, 0x3f, 0x02,
+ 0x00, 0x00, 0xe6, 0x9f, 0xff, 0x07, 0x00, 0x00, 0xcc, 0x3f, 0x1f, 0x08,
+ 0x00, 0x00, 0x9c, 0x7f, 0xce, 0x31, 0x00, 0x00, 0xf0, 0xff, 0xe0, 0x63,
+ 0x00, 0x00, 0xc0, 0xfe, 0xf1, 0xe7, 0x03, 0x00, 0x00, 0xfc, 0xf9, 0xc7,
+ 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x07, 0x00, 0x00, 0x00, 0xfe, 0xfc, 0x03,
+ 0x00, 0x00, 0x00, 0x62, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x42, 0xfe, 0x0e,
+ 0x00, 0x00, 0x00, 0x42, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x46, 0xfe, 0x47,
+ 0x00, 0x00, 0x00, 0x66, 0x84, 0x03, 0x00, 0x00, 0x00, 0xc2, 0x40, 0x00,
+ 0x04, 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x04, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach330.xbm b/games/x11/xroach/bitmaps/roach330.xbm
new file mode 100644
index 0000000..67735f8
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach330.xbm
@@ -0,0 +1,30 @@
+#define roach330_width 48
+#define roach330_height 48
+
+static char roach330_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x60, 0x00, 0x00,
+ 0x00, 0x00, 0xfe, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x8f, 0xf0, 0x01,
+ 0x00, 0x00, 0xf8, 0xff, 0x38, 0x00, 0x00, 0x80, 0xe0, 0xff, 0x0f, 0x00,
+ 0x00, 0x80, 0xc3, 0xff, 0x07, 0x00, 0x00, 0x80, 0x0f, 0xff, 0x1f, 0x03,
+ 0x00, 0x80, 0x3f, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xf0, 0x7f, 0x38,
+ 0x00, 0x00, 0xfe, 0xe3, 0x8f, 0xe1, 0x07, 0x00, 0xf8, 0x8f, 0xc7, 0xc3,
+ 0x00, 0x00, 0xf0, 0x3f, 0xe6, 0x07, 0x00, 0x00, 0xe1, 0xff, 0xf0, 0x07,
+ 0x00, 0xc0, 0xc7, 0xff, 0xf9, 0x07, 0x00, 0x30, 0xbc, 0xff, 0xf9, 0x07,
+ 0x00, 0x00, 0xf0, 0xfd, 0xfd, 0x1f, 0x00, 0x00, 0x00, 0xf8, 0xfd, 0x7f,
+ 0x00, 0x00, 0x00, 0xf0, 0xfc, 0x1d, 0x08, 0x00, 0x00, 0xc8, 0xfd, 0x1e,
+ 0x00, 0x00, 0x00, 0x0c, 0x7d, 0x06, 0x00, 0x00, 0x00, 0x08, 0x19, 0x02,
+ 0x00, 0x00, 0x00, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/bitmaps/roach345.xbm b/games/x11/xroach/bitmaps/roach345.xbm
new file mode 100644
index 0000000..af01fa5
--- /dev/null
+++ b/games/x11/xroach/bitmaps/roach345.xbm
@@ -0,0 +1,30 @@
+#define roach345_width 48
+#define roach345_height 48
+
+static char roach345_bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x40, 0x00,
+ 0x00, 0x00, 0x00, 0x0e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0e, 0x00,
+ 0x00, 0x00, 0xff, 0x23, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0x83, 0x03,
+ 0x00, 0xc0, 0xff, 0xff, 0xe3, 0xff, 0x03, 0x80, 0xff, 0xff, 0x3f, 0x70,
+ 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x40, 0x00, 0xff, 0xcf, 0x03,
+ 0x00, 0xe0, 0x0f, 0xf0, 0xef, 0x03, 0x00, 0xc0, 0x7f, 0x00, 0xf7, 0x07,
+ 0x00, 0xc0, 0xff, 0x07, 0xf0, 0x07, 0x00, 0x00, 0xff, 0x7f, 0xf0, 0xff,
+ 0x13, 0x00, 0xfe, 0xff, 0xf1, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0xf9, 0x3b,
+ 0x00, 0x00, 0xc0, 0xff, 0xf9, 0x1f, 0x00, 0x00, 0x82, 0xff, 0xfb, 0x1f,
+ 0x00, 0x00, 0xff, 0xfb, 0xfb, 0x03, 0x00, 0x80, 0xe1, 0xe1, 0xf3, 0x81,
+ 0x00, 0x40, 0x00, 0x30, 0x62, 0x00, 0x02, 0x00, 0x00, 0x30, 0x04, 0x00,
+ 0x04, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x78, 0x00,
+ 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x80, 0x00, 0x06,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00};
+
diff --git a/games/x11/xroach/roachmap.h b/games/x11/xroach/roachmap.h
new file mode 100644
index 0000000..209bf54
--- /dev/null
+++ b/games/x11/xroach/roachmap.h
@@ -0,0 +1,65 @@
+#include "roach000.xbm"
+#include "roach015.xbm"
+#include "roach030.xbm"
+#include "roach045.xbm"
+#include "roach060.xbm"
+#include "roach075.xbm"
+#include "roach090.xbm"
+#include "roach105.xbm"
+#include "roach120.xbm"
+#include "roach135.xbm"
+#include "roach150.xbm"
+#include "roach165.xbm"
+#include "roach180.xbm"
+#include "roach195.xbm"
+#include "roach210.xbm"
+#include "roach225.xbm"
+#include "roach240.xbm"
+#include "roach255.xbm"
+#include "roach270.xbm"
+#include "roach285.xbm"
+#include "roach300.xbm"
+#include "roach315.xbm"
+#include "roach330.xbm"
+#include "roach345.xbm"
+
+#define ROACH_HEADINGS 24 /* number of orientations */
+#define ROACH_ANGLE 15 /* angle between orientations */
+
+typedef struct RoachMap {
+ char *roachBits;
+ Pixmap pixmap;
+ int width;
+ int height;
+ float sine;
+ float cosine;
+} RoachMap;
+
+RoachMap roachPix[] = {
+ {roach000_bits, None, roach000_height, roach000_width, 0.0, 0.0},
+ {roach015_bits, None, roach015_height, roach015_width, 0.0, 0.0},
+ {roach030_bits, None, roach030_height, roach030_width, 0.0, 0.0},
+ {roach045_bits, None, roach045_height, roach045_width, 0.0, 0.0},
+ {roach060_bits, None, roach060_height, roach060_width, 0.0, 0.0},
+ {roach075_bits, None, roach075_height, roach075_width, 0.0, 0.0},
+ {roach090_bits, None, roach090_height, roach090_width, 0.0, 0.0},
+ {roach105_bits, None, roach105_height, roach105_width, 0.0, 0.0},
+ {roach120_bits, None, roach120_height, roach120_width, 0.0, 0.0},
+ {roach135_bits, None, roach135_height, roach135_width, 0.0, 0.0},
+ {roach150_bits, None, roach150_height, roach150_width, 0.0, 0.0},
+ {roach165_bits, None, roach165_height, roach165_width, 0.0, 0.0},
+ {roach180_bits, None, roach180_height, roach180_width, 0.0, 0.0},
+ {roach195_bits, None, roach195_height, roach195_width, 0.0, 0.0},
+ {roach210_bits, None, roach210_height, roach210_width, 0.0, 0.0},
+ {roach225_bits, None, roach225_height, roach225_width, 0.0, 0.0},
+ {roach240_bits, None, roach240_height, roach240_width, 0.0, 0.0},
+ {roach255_bits, None, roach255_height, roach255_width, 0.0, 0.0},
+ {roach270_bits, None, roach270_height, roach270_width, 0.0, 0.0},
+ {roach285_bits, None, roach285_height, roach285_width, 0.0, 0.0},
+ {roach300_bits, None, roach300_height, roach300_width, 0.0, 0.0},
+ {roach315_bits, None, roach315_height, roach315_width, 0.0, 0.0},
+ {roach330_bits, None, roach330_height, roach330_width, 0.0, 0.0},
+ {roach345_bits, None, roach345_height, roach345_width, 0.0, 0.0},
+};
+
+
diff --git a/games/x11/xroach/xroach.6 b/games/x11/xroach/xroach.6
new file mode 100644
index 0000000..509fc40
--- /dev/null
+++ b/games/x11/xroach/xroach.6
@@ -0,0 +1,75 @@
+.\" Copyright (c) 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" from: X Version 11 Release 4, May 30, 1991
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)xroach.6 8.2 (Berkeley) 4/19/94
+.\"
+.TH XROACH 6 "April 19, 1994" "X Version 11 Release 4"
+.SH NAME
+xroach \- cockroaches hide under your windows
+.SH SYNOPSIS
+.B xroach
+[-option .,..]
+.SH DESCRIPTION
+.I Xroach
+displays disgusting cockroaches on your root window. These creepy crawlies
+scamper
+around until they find a window to hide under. Whenever you move or iconify
+a window, the exposed beetles again scamper for cover.
+.SH OPTIONS
+.TP 8
+.B \-display \fIdisplay_name\fB
+Drop the roaches on the given display. Make sure the display is nearby, so you
+can hear the screams.
+.TP 8
+.B \-rc \fIroach_color\fB
+Use the given string as the color for the bugs instead of the default "black".
+.TP 8
+.B \-speed \fIroach_speed\fB
+Use the given speed for the insects instead of the default 20.0. For example,
+in winter the speed should be set to 5.0. In summer, 30.0 might be about
+right.
+.TP 8
+.B \-roaches \fInum_roaches\fB
+This is the number of the little critters. Default is 10.
+.SH BUGS
+As given by the -roaches option. Default is 10.
+.SH COPYRIGHT
+Copyright 1991 by J.T. Anderson
+.SH AUTHORS
+J.T. Anderson
+(jta@locus.com)
+.SH DEDICATION
+Greg McFarlane
+(gregm@otc.otca.oz.au)
+.SH "SEE ALSO"
+xroachmotel(1), xddt(1)
diff --git a/games/x11/xroach/xroach.c b/games/x11/xroach/xroach.c
new file mode 100644
index 0000000..854167f
--- /dev/null
+++ b/games/x11/xroach/xroach.c
@@ -0,0 +1,602 @@
+/*
+ Xroach - A game of skill. Try to find the roaches under your windows.
+
+ Copyright 1991 by J.T. Anderson
+
+ jta@locus.com
+
+ This program may be freely distributed provided that all
+ copyright notices are retained.
+
+ To build:
+ cc -o xroach roach.c -lX11 [-lsocketorwhatever] [-lm] [-l...]
+
+ Dedicated to Greg McFarlane. (gregm@otc.otca.oz.au)
+*/
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+
+#include <stdio.h>
+#include <math.h>
+#include <signal.h>
+#include <stdlib.h>
+
+char Copyright[] = "Xroach\nCopyright 1991 J.T. Anderson";
+
+#include "roachmap.h"
+
+typedef unsigned long Pixel;
+typedef int ErrorHandler();
+
+#define SCAMPER_EVENT (LASTEvent + 1)
+
+#if !defined(GRAB_SERVER)
+#define GRAB_SERVER 0
+#endif
+
+Display *display;
+int screen;
+Window rootWin;
+unsigned int display_width, display_height;
+int center_x, center_y;
+GC gc;
+char *display_name = NULL;
+Pixel black, white;
+
+int done = 0;
+int eventBlock = 0;
+int errorVal = 0;
+
+typedef struct Roach {
+ RoachMap *rp;
+ int index;
+ float x;
+ float y;
+ int intX;
+ int intY;
+ int hidden;
+ int turnLeft;
+ int steps;
+} Roach;
+
+Roach *roaches;
+int maxRoaches = 10;
+int curRoaches = 0;
+float roachSpeed = 20.0;
+
+Region rootVisible = NULL;
+
+void Usage();
+void SigHandler();
+void AddRoach();
+void MoveRoach();
+void DrawRoaches();
+void CoverRoot();
+int CalcRootVisible();
+int MarkHiddenRoaches();
+Pixel AllocNamedColor();
+
+void
+main(ac, av)
+int ac;
+char *av[];
+{
+ XGCValues xgcv;
+ int ax;
+ char *arg;
+ RoachMap *rp;
+ int rx;
+ float angle;
+ XEvent ev;
+ char *roachColor = "black";
+ int nVis;
+ int needCalc;
+
+ /*
+ Process command line options.
+ */
+ for (ax=1; ax<ac; ax++) {
+ arg = av[ax];
+ if (strcmp(arg, "-display") == 0) {
+ display_name = av[++ax];
+ }
+ else if (strcmp(arg, "-rc") == 0) {
+ roachColor = av[++ax];
+ }
+ else if (strcmp(arg, "-speed") == 0) {
+ roachSpeed = atof(av[++ax]);
+ }
+ else if (strcmp(arg, "-roaches") == 0) {
+ maxRoaches = strtol(av[++ax], (char **)NULL, 0);
+ }
+ else {
+ Usage();
+ }
+ }
+
+ srand((int)time((long *)NULL));
+
+ /*
+ Catch some signals so we can erase any visible roaches.
+ */
+ signal(SIGKILL, SigHandler);
+ signal(SIGINT, SigHandler);
+ signal(SIGTERM, SigHandler);
+ signal(SIGHUP, SigHandler);
+
+ display = XOpenDisplay(display_name);
+ if (display == NULL) {
+ if (display_name == NULL) display_name = getenv("DISPLAY");
+ (void) fprintf(stderr, "%s: cannot connect to X server %s\n", av[0],
+ display_name ? display_name : "(default)");
+ exit(1);
+ }
+
+ screen = DefaultScreen(display);
+ rootWin = RootWindow(display, screen);
+ black = BlackPixel(display, screen);
+ white = WhitePixel(display, screen);
+
+ display_width = DisplayWidth(display, screen);
+ display_height = DisplayHeight(display, screen);
+ center_x = display_width / 2;
+ center_y = display_height / 2;
+
+ /*
+ Create roach pixmaps at several orientations.
+ */
+ for (ax=0; ax<360; ax+=ROACH_ANGLE) {
+ rx = ax / ROACH_ANGLE;
+ angle = rx * 0.261799387799;
+ rp = &roachPix[rx];
+ rp->pixmap = XCreateBitmapFromData(display, rootWin,
+ rp->roachBits, rp->width, rp->height);
+ rp->sine = sin(angle);
+ rp->cosine = cos(angle);
+ }
+
+ roaches = (Roach *)malloc(sizeof(Roach) * maxRoaches);
+
+ gc = XCreateGC(display, rootWin, 0L, &xgcv);
+ XSetForeground(display, gc, AllocNamedColor(roachColor, black));
+ XSetFillStyle(display, gc, FillStippled);
+
+ while (curRoaches < maxRoaches)
+ AddRoach();
+
+ XSelectInput(display, rootWin, ExposureMask | SubstructureNotifyMask);
+
+ needCalc = 1;
+ while (!done) {
+ if (XPending(display)) {
+ XNextEvent(display, &ev);
+ }
+ else {
+ if (needCalc) {
+ needCalc = CalcRootVisible();
+ }
+ nVis = MarkHiddenRoaches();
+ if (nVis) {
+ ev.type = SCAMPER_EVENT;
+ }
+ else {
+ DrawRoaches();
+ eventBlock = 1;
+ XNextEvent(display, &ev);
+ eventBlock = 0;
+ }
+ }
+
+ switch (ev.type) {
+
+ case SCAMPER_EVENT:
+ for (rx=0; rx<curRoaches; rx++) {
+ if (!roaches[rx].hidden)
+ MoveRoach(rx);
+ }
+ DrawRoaches();
+ XSync(display, False);
+ break;
+
+ case Expose:
+ case MapNotify:
+ case UnmapNotify:
+ case ConfigureNotify:
+ needCalc = 1;
+ break;
+
+ }
+ }
+
+ CoverRoot();
+
+ XCloseDisplay(display);
+}
+
+#define USEPRT(msg) fprintf(stderr, msg)
+
+void
+Usage()
+{
+ USEPRT("Usage: xroach [options]\n\n");
+ USEPRT("Options:\n");
+ USEPRT(" -display displayname\n");
+ USEPRT(" -rc roachcolor\n");
+ USEPRT(" -roaches numroaches\n");
+ USEPRT(" -speed roachspeed\n");
+
+ exit(1);
+}
+
+void
+SigHandler()
+{
+
+ /*
+ If we are blocked, no roaches are visible and we can just bail
+ out. If we are not blocked, then let the main procedure clean
+ up the root window.
+ */
+ if (eventBlock) {
+ XCloseDisplay(display);
+ exit(0);
+ }
+ else {
+ done = 1;
+ }
+}
+
+/*
+ Generate random integer between 0 and maxVal-1.
+*/
+int
+RandInt(maxVal)
+int maxVal;
+{
+ return rand() % maxVal;
+}
+
+/*
+ Check for roach completely in specified rectangle.
+*/
+int
+RoachInRect(roach, rx, ry, x, y, width, height)
+Roach *roach;
+int rx;
+int ry;
+int x;
+int y;
+unsigned int width;
+unsigned int height;
+{
+ if (rx < x) return 0;
+ if ((rx + roach->rp->width) > (x + width)) return 0;
+ if (ry < y) return 0;
+ if ((ry + roach->rp->height) > (y + height)) return 0;
+
+ return 1;
+}
+
+/*
+ Check for roach overlapping specified rectangle.
+*/
+int
+RoachOverRect(roach, rx, ry, x, y, width, height)
+Roach *roach;
+int rx;
+int ry;
+int x;
+int y;
+unsigned int width;
+unsigned int height;
+{
+ if (rx >= (x + width)) return 0;
+ if ((rx + roach->rp->width) <= x) return 0;
+ if (ry >= (y + height)) return 0;
+ if ((ry + roach->rp->height) <= y) return 0;
+
+ return 1;
+}
+
+/*
+ Give birth to a roach.
+*/
+void
+AddRoach()
+{
+ Roach *r;
+
+ if (curRoaches < maxRoaches) {
+ r = &roaches[curRoaches++];
+ r->index = RandInt(ROACH_HEADINGS);
+ r->rp = &roachPix[r->index];
+ r->x = RandInt(display_width - r->rp->width);
+ r->y = RandInt(display_height - r->rp->height);
+ r->intX = -1;
+ r->intY = -1;
+ r->hidden = 0;
+ r->steps = RandInt(200);
+ r->turnLeft = RandInt(100) >= 50;
+ }
+}
+
+/*
+ Turn a roach.
+*/
+void
+TurnRoach(roach)
+Roach *roach;
+{
+ if (roach->index != (roach->rp - roachPix)) return;
+
+ if (roach->turnLeft) {
+ roach->index += (RandInt(30) / 10) + 1;
+ if (roach->index >= ROACH_HEADINGS)
+ roach->index -= ROACH_HEADINGS;
+ }
+ else {
+ roach->index -= (RandInt(30) / 10) + 1;
+ if (roach->index < 0)
+ roach->index += ROACH_HEADINGS;
+ }
+}
+
+/*
+ Move a roach.
+*/
+void
+MoveRoach(rx)
+int rx;
+{
+ Roach *roach;
+ Roach *r2;
+ float newX;
+ float newY;
+ int ii;
+
+ roach = &roaches[rx];
+ newX = roach->x + (roachSpeed * roach->rp->cosine);
+ newY = roach->y - (roachSpeed * roach->rp->sine);
+
+ if (RoachInRect(roach, (int)newX, (int)newY,
+ 0, 0, display_width, display_height)) {
+
+ roach->x = newX;
+ roach->y = newY;
+
+ if (roach->steps-- <= 0) {
+ TurnRoach(roach);
+ roach->steps = RandInt(200);
+ }
+
+ for (ii=rx+1; ii<curRoaches; ii++) {
+ r2 = &roaches[ii];
+ if (RoachOverRect(roach, (int)newX, (int)newY,
+ r2->intX, r2->intY, r2->rp->width, r2->rp->height)) {
+
+ TurnRoach(roach);
+ }
+ }
+ }
+ else {
+ TurnRoach(roach);
+ }
+}
+
+/*
+ Draw all roaches.
+*/
+void
+DrawRoaches()
+{
+ Roach *roach;
+ int rx;
+
+ for (rx=0; rx<curRoaches; rx++) {
+ roach = &roaches[rx];
+
+ if (roach->intX >= 0) {
+ XClearArea(display, rootWin, roach->intX, roach->intY,
+ roach->rp->width, roach->rp->height, False);
+ }
+ }
+
+ for (rx=0; rx<curRoaches; rx++) {
+ roach = &roaches[rx];
+
+ if (!roach->hidden) {
+ roach->intX = roach->x;
+ roach->intY = roach->y;
+ roach->rp = &roachPix[roach->index];
+
+ XSetStipple(display, gc, roach->rp->pixmap);
+ XSetTSOrigin(display, gc, roach->intX, roach->intY);
+ XFillRectangle(display, rootWin, gc,
+ roach->intX, roach->intY, roach->rp->width, roach->rp->height);
+ }
+ else {
+ roach->intX = -1;
+ }
+ }
+}
+
+/*
+ Cover root window to erase roaches.
+*/
+void
+CoverRoot()
+{
+ XSetWindowAttributes xswa;
+ long wamask;
+ Window roachWin;
+
+ xswa.background_pixmap = ParentRelative;
+ xswa.override_redirect = True;
+ wamask = CWBackPixmap | CWOverrideRedirect;
+ roachWin = XCreateWindow(display, rootWin, 0, 0,
+ display_width, display_height, 0, CopyFromParent,
+ InputOutput, CopyFromParent, wamask, &xswa);
+ XLowerWindow(display, roachWin);
+ XMapWindow(display, roachWin);
+ XFlush(display);
+}
+
+#if !GRAB_SERVER
+
+int
+RoachErrors(dpy, err)
+Display *dpy;
+XErrorEvent *err;
+{
+ errorVal = err->error_code;
+
+ return 0;
+}
+
+#endif /* GRAB_SERVER */
+
+/*
+ Calculate Visible region of root window.
+*/
+int
+CalcRootVisible()
+{
+ Region covered;
+ Region visible;
+ Window *children;
+ int nChildren;
+ Window dummy;
+ XWindowAttributes wa;
+ int wx;
+ XRectangle rect;
+ int winX, winY;
+ unsigned int winHeight, winWidth;
+ unsigned int borderWidth;
+ unsigned int depth;
+
+ /*
+ If we don't grab the server, the XGetWindowAttribute or XGetGeometry
+ calls can abort us. On the other hand, the server grabs can make for
+ some annoying delays.
+ */
+#if GRAB_SERVER
+ XGrabServer(display);
+#else
+ XSetErrorHandler(RoachErrors);
+#endif
+
+ /*
+ Get children of root.
+ */
+ XQueryTree(display, rootWin, &dummy, &dummy, &children, &nChildren);
+
+ /*
+ For each mapped child, add the window rectangle to the covered
+ region.
+ */
+ covered = XCreateRegion();
+ for (wx=0; wx<nChildren; wx++) {
+ if (XEventsQueued(display, QueuedAlready)) return 1;
+ errorVal = 0;
+ XGetWindowAttributes(display, children[wx], &wa);
+ if (errorVal) continue;
+ if (wa.map_state == IsViewable) {
+ XGetGeometry(display, children[wx], &dummy, &winX, &winY,
+ &winWidth, &winHeight, &borderWidth, &depth);
+ if (errorVal) continue;
+ rect.x = winX;
+ rect.y = winY;
+ rect.width = winWidth + (borderWidth * 2);
+ rect.height = winHeight + (borderWidth * 2);
+ XUnionRectWithRegion(&rect, covered, covered);
+ }
+ }
+ XFree((char *)children);
+
+#if GRAB_SERVER
+ XUngrabServer(display);
+#else
+ XSetErrorHandler((ErrorHandler *)NULL);
+#endif
+
+ /*
+ Subtract the covered region from the root window region.
+ */
+ visible = XCreateRegion();
+ rect.x = 0;
+ rect.y = 0;
+ rect.width = display_width;
+ rect.height = display_height;
+ XUnionRectWithRegion(&rect, visible, visible);
+ XSubtractRegion(visible, covered, visible);
+ XDestroyRegion(covered);
+
+ /*
+ Save visible region globally.
+ */
+ if (rootVisible)
+ XDestroyRegion(rootVisible);
+ rootVisible = visible;
+
+
+ /*
+ Mark all roaches visible.
+ */
+ for (wx=0; wx<curRoaches; wx++)
+ roaches[wx].hidden = 0;
+
+ return 0;
+}
+
+/*
+ Mark hidden roaches.
+*/
+int
+MarkHiddenRoaches()
+{
+ int rx;
+ Roach *r;
+ int nVisible;
+
+ nVisible = 0;
+ for (rx=0; rx<curRoaches; rx++) {
+ r = &roaches[rx];
+
+ if (!r->hidden) {
+ if (r->intX > 0 && XRectInRegion(rootVisible, r->intX, r->intY,
+ r->rp->width, r->rp->height) == RectangleOut) {
+ r->hidden = 1;
+ }
+ else {
+ nVisible++;
+ }
+ }
+ }
+
+ return nVisible;
+}
+
+/*
+ Allocate a color by name.
+*/
+Pixel
+AllocNamedColor(colorName, dfltPix)
+char *colorName;
+Pixel dfltPix;
+{
+ Pixel pix;
+ XColor scrncolor;
+ XColor exactcolor;
+
+ if (XAllocNamedColor(display, DefaultColormap(display, screen),
+ colorName, &scrncolor, &exactcolor)) {
+ pix = scrncolor.pixel;
+ }
+ else {
+ pix = dfltPix;
+ }
+
+ return pix;
+}
+
OpenPOWER on IntegriCloud