summaryrefslogtreecommitdiffstats
path: root/ksokoban/images
diff options
context:
space:
mode:
Diffstat (limited to 'ksokoban/images')
-rw-r--r--ksokoban/images/Makefile.am88
-rw-r--r--ksokoban/images/bin2c.c256
-rw-r--r--ksokoban/images/floor_common.inc19
-rw-r--r--ksokoban/images/goal.pngbin0 -> 7467 bytes
-rw-r--r--ksokoban/images/goal.pov34
-rw-r--r--ksokoban/images/halfstone_1.pngbin0 -> 4468 bytes
-rw-r--r--ksokoban/images/halfstone_1.pov17
-rw-r--r--ksokoban/images/halfstone_2.pngbin0 -> 4203 bytes
-rw-r--r--ksokoban/images/halfstone_2.pov17
-rw-r--r--ksokoban/images/halfstone_3.pngbin0 -> 3946 bytes
-rw-r--r--ksokoban/images/halfstone_3.pov17
-rw-r--r--ksokoban/images/halfstone_4.pngbin0 -> 4062 bytes
-rw-r--r--ksokoban/images/halfstone_4.pov17
-rw-r--r--ksokoban/images/man.pngbin0 -> 6298 bytes
-rw-r--r--ksokoban/images/man.pov5
-rw-r--r--ksokoban/images/man_common.inc59
-rw-r--r--ksokoban/images/object.pngbin0 -> 4955 bytes
-rw-r--r--ksokoban/images/object.pov36
-rw-r--r--ksokoban/images/saveman.pngbin0 -> 8949 bytes
-rw-r--r--ksokoban/images/saveman.pov5
-rw-r--r--ksokoban/images/starfield.pngbin0 -> 9618 bytes
-rw-r--r--ksokoban/images/stone_1.pngbin0 -> 7970 bytes
-rw-r--r--ksokoban/images/stone_1.pov17
-rw-r--r--ksokoban/images/stone_2.pngbin0 -> 7964 bytes
-rw-r--r--ksokoban/images/stone_2.pov17
-rw-r--r--ksokoban/images/stone_3.pngbin0 -> 7527 bytes
-rw-r--r--ksokoban/images/stone_3.pov17
-rw-r--r--ksokoban/images/stone_4.pngbin0 -> 7763 bytes
-rw-r--r--ksokoban/images/stone_4.pov17
-rw-r--r--ksokoban/images/stone_5.pngbin0 -> 8082 bytes
-rw-r--r--ksokoban/images/stone_5.pov17
-rw-r--r--ksokoban/images/stone_6.pngbin0 -> 8219 bytes
-rw-r--r--ksokoban/images/stone_6.pov17
-rw-r--r--ksokoban/images/stone_common.inc32
-rw-r--r--ksokoban/images/treasure.pngbin0 -> 7969 bytes
-rw-r--r--ksokoban/images/treasure.pov36
36 files changed, 740 insertions, 0 deletions
diff --git a/ksokoban/images/Makefile.am b/ksokoban/images/Makefile.am
new file mode 100644
index 00000000..f2af8b9f
--- /dev/null
+++ b/ksokoban/images/Makefile.am
@@ -0,0 +1,88 @@
+
+noinst_DATA = data.c
+bin2c_SOURCES = bin2c.c
+bin2c_LDFLAGS = $(all_libraries)
+bin2c_LDADD = $(LIBZ)
+
+noinst_PROGRAMS = bin2c
+
+test:
+ x-povray +W200 +H200 +I$@.pov +O$@.png +p +d
+ rm -f $@.png
+
+POVFILES=floor_common.inc goal.pov halfstone_1.pov halfstone_2.pov halfstone_3.pov halfstone_4.pov man.pov man_common.inc object.pov saveman.pov stone_1.pov stone_2.pov stone_3.pov stone_4.pov stone_5.pov stone_6.pov stone_common.inc treasure.pov
+
+IMAGES=goal.png halfstone_1.png halfstone_2.png halfstone_3.png halfstone_4.png man.png object.png saveman.png stone_1.png stone_2.png stone_3.png stone_4.png stone_5.png stone_6.png treasure.png starfield.png
+
+EXTRA_DIST = $(POVFILES) $(IMAGES)
+CLEANFILES = data.c
+
+RESOLUTION=+W96 +H96
+STONE_RESOLUTION=+W96 +H48
+HALFSTONE_RESOLUTION=+W48 +H48
+
+# no antialias
+#ANTIALIAS=
+
+# normal antialias
+#ANTIALIAS=+A
+
+# slow antialias
+ANTIALIAS=+A0 +R9
+
+POVRAY=povray $(ANTIALIAS)
+
+data.c: $(IMAGES) bin2c
+ list=""; for i in $(IMAGES); do list="$$list $(srcdir)/$$i"; done; \
+ ./bin2c "" $$list
+
+############################################################################
+# Povray rules to generate images
+#
+#halfstone_1.png: halfstone_1.pov stone_common.inc
+# $(POVRAY) $(HALFSTONE_RESOLUTION) +I$< +O$@
+#
+#halfstone_2.png: halfstone_2.pov stone_common.inc
+# $(POVRAY) $(HALFSTONE_RESOLUTION) +I$< +O$@
+#
+#halfstone_3.png: halfstone_3.pov stone_common.inc
+# $(POVRAY) $(HALFSTONE_RESOLUTION) +I$< +O$@
+#
+#halfstone_4.png: halfstone_4.pov stone_common.inc
+# $(POVRAY) $(HALFSTONE_RESOLUTION) +I$< +O$@
+#
+#
+#stone_1.png: stone_1.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#stone_2.png: stone_2.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#stone_3.png: stone_3.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#stone_4.png: stone_4.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#stone_5.png: stone_5.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#stone_6.png: stone_6.pov stone_common.inc
+# $(POVRAY) $(STONE_RESOLUTION) +I$< +O$@
+#
+#
+#treasure.png: treasure.pov goal.pov floor_common.inc
+# $(POVRAY) $(RESOLUTION) +I$< +O$@
+#
+#object.png: object.pov floor_common.inc
+# $(POVRAY) $(RESOLUTION) +I$< +O$@
+#
+#man.png: man.pov man_common.inc floor_common.inc
+# $(POVRAY) $(RESOLUTION) +I$< +O$@
+#
+#saveman.png: saveman.pov man_common.inc goal.pov floor_common.inc
+# $(POVRAY) $(RESOLUTION) +I$< +O$@
+#
+#goal.png: goal.pov floor_common.inc
+# $(POVRAY) $(RESOLUTION) +I$< +O$@
+
diff --git a/ksokoban/images/bin2c.c b/ksokoban/images/bin2c.c
new file mode 100644
index 00000000..0dad91d1
--- /dev/null
+++ b/ksokoban/images/bin2c.c
@@ -0,0 +1,256 @@
+/*
+ * bin2c - compresses data files & converts the result to C source code
+ * Copyright (C) 1998-2000 Anders Widell <awl@hem.passagen.se>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * This command uses the zlib library to compress each file given on
+ * the command line, and outputs the compressed data as C source code
+ * to the file 'data.c' in the current directory
+ *
+ */
+
+#include "../../config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef USE_LIBZ
+#include <zlib.h>
+#else
+typedef unsigned char Bytef;
+typedef unsigned long uLongf;
+#endif
+
+#define BUFSIZE 16384 /* Increase buffer size by this amount */
+
+static Bytef *source=NULL; /* Buffer containing uncompressed data */
+static Bytef *dest=NULL; /* Buffer containing compressed data */
+static uLongf sourceBufSize=0; /* Buffer size */
+#ifdef USE_LIBZ
+static uLongf destBufSize=0; /* Buffer size */
+#endif
+
+static uLongf sourceLen; /* Length of uncompressed data */
+static uLongf destLen; /* Length of compressed data */
+
+static FILE *infile=NULL; /* The input file containing binary data */
+static FILE *outfile=NULL; /* The output file 'data.c' */
+
+static const char *programName="";
+
+/*
+ * Print error message and free allocated resources
+ *
+ */
+
+static int
+error (msg1, msg2, msg3)
+ char *msg1;
+ char *msg2;
+ char *msg3;
+{
+ fprintf (stderr, "%s: %s%s%s\n", programName, msg1, msg2, msg3);
+
+ if (infile != NULL) fclose (infile);
+ if (outfile != NULL) fclose (outfile);
+ remove ("data.c");
+ free (dest);
+ free (source);
+
+ return 1;
+}
+
+/*
+ * Replacement for strrchr in case it isn't present in libc
+ *
+ */
+
+static char *
+my_strrchr (s, c)
+ char *s;
+ int c;
+{
+ char *ptr = NULL;
+
+ while (*s) {
+ if (*s == c) ptr = s;
+ s++;
+ }
+
+ return ptr;
+}
+
+#ifdef USE_LIBZ
+/*
+ * NOTE: my_compress2 is taken directly from zlib 1.1.3
+ *
+ * This is for compatibility with early versions of zlib that
+ * don't have the compress2 function.
+ *
+ */
+
+/* ===========================================================================
+ Compresses the source buffer into the destination buffer. The level
+ parameter has the same meaning as in deflateInit. sourceLen is the byte
+ length of the source buffer. Upon entry, destLen is the total size of the
+ destination buffer, which must be at least 0.1% larger than sourceLen plus
+ 12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
+
+ compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
+ memory, Z_BUF_ERROR if there was not enough room in the output buffer,
+ Z_STREAM_ERROR if the level parameter is invalid.
+*/
+int my_compress2 (dest, destLen, source, sourceLen, level)
+ Bytef *dest;
+ uLongf *destLen;
+ const Bytef *source;
+ uLong sourceLen;
+ int level;
+{
+ z_stream stream;
+ int err;
+
+ stream.next_in = (Bytef*)source;
+ stream.avail_in = (uInt)sourceLen;
+#ifdef MAXSEG_64K
+ /* Check for source > 64K on 16-bit machine: */
+ if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
+#endif
+ stream.next_out = dest;
+ stream.avail_out = (uInt)*destLen;
+ if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
+
+ stream.zalloc = (alloc_func)0;
+ stream.zfree = (free_func)0;
+ stream.opaque = (voidpf)0;
+
+ err = deflateInit(&stream, level);
+ if (err != Z_OK) return err;
+
+ err = deflate(&stream, Z_FINISH);
+ if (err != Z_STREAM_END) {
+ deflateEnd(&stream);
+ return err == Z_OK ? Z_BUF_ERROR : err;
+ }
+ *destLen = stream.total_out;
+
+ err = deflateEnd(&stream);
+ return err;
+}
+#endif
+
+int
+main (argc, argv)
+ int argc;
+ char **argv;
+{
+ int i;
+ const char *suffix;
+#ifdef USE_LIBZ
+ int result;
+#endif
+ unsigned j;
+ char *ptr;
+ int position;
+
+ programName = argv[0];
+
+ outfile = fopen ("data.c", "w");
+ if (outfile == NULL) {
+ fprintf (stderr, "%s: can't open 'data.c' for writing\n", argv[0]);
+ return 1;
+ }
+
+ suffix = argv[1];
+ /* Process each file given on command line */
+ for (i=2; i<argc; i++) {
+ infile = fopen (argv[i], "rb");
+ if (infile == NULL) return error ("can't open '", argv[i], "' for reading");
+
+ /* Read infile to source buffer */
+ sourceLen = 0;
+ while (!feof (infile)) {
+ if (sourceLen + BUFSIZE > sourceBufSize) {
+ sourceBufSize += BUFSIZE;
+ source = realloc (source, sourceBufSize);
+ if (source == NULL) return error ("memory exhausted", "", "");
+ }
+ sourceLen += fread (source+sourceLen, 1, BUFSIZE, infile);
+ if (ferror (infile)) return error ("error reading '", argv[i], "'");
+ }
+ fclose (infile);
+
+#ifdef USE_LIBZ
+
+ /* (Re)allocate dest buffer */
+ destLen = sourceBufSize + (sourceBufSize+9)/10 + 12;
+ if (destBufSize < destLen) {
+ destBufSize = destLen;
+ dest = realloc (dest, destBufSize);
+ if (dest == NULL) return error ("memory exhausted", "", "");
+ }
+
+ /* Compress dest buffer */
+ destLen = destBufSize;
+ result = my_compress2 (dest, &destLen, source, sourceLen, 9);
+ if (result != Z_OK) return error ("error compressing '", argv[i], "'");
+
+#else
+
+ destLen = sourceLen;
+ dest = source;
+
+#endif
+
+ /* Output dest buffer as C source code to outfile */
+ ptr = my_strrchr (argv[i], '.');
+ if (ptr != NULL) *ptr = '\0';
+ /* use only the file 2name and throw away the path name */
+ position = strlen(argv[i]) - 1;
+ while (position && argv[i][position] != '/') position--;
+ if (argv[i][position] == '/') position++;
+
+ fprintf (outfile, "static const unsigned char %s_data_%s[] = {\n", argv[i] + position, suffix);
+
+ for (j=0; j<destLen-1; j++) {
+ switch (j%8) {
+ case 0:
+ fprintf (outfile, " 0x%02x, ", ((unsigned) dest[j]) & 0xffu);
+ break;
+ case 7:
+ fprintf (outfile, "0x%02x,\n", ((unsigned) dest[j]) & 0xffu);
+ break;
+ default:
+ fprintf (outfile, "0x%02x, ", ((unsigned) dest[j]) & 0xffu);
+ break;
+ }
+ }
+
+ if ((destLen-1)%8 == 0) fprintf (outfile, " 0x%02x\n};\n\n", ((unsigned) dest[destLen-1]) & 0xffu);
+ else fprintf (outfile, "0x%02x\n};\n\n", ((unsigned) dest[destLen-1]) & 0xffu);
+ }
+
+ fclose (outfile);
+#ifdef USE_LIBZ
+ free (dest);
+#endif
+ free (source);
+
+ return 0;
+}
diff --git a/ksokoban/images/floor_common.inc b/ksokoban/images/floor_common.inc
new file mode 100644
index 00000000..a669fd97
--- /dev/null
+++ b/ksokoban/images/floor_common.inc
@@ -0,0 +1,19 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#declare FloorColour = <114/255, 114/255, 114/255>;
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1, 0>
+}
+
+light_source { <-5000, 10000, -10000> color rgb <1, 1, 1> }
+light_source { <-5000, 10000, -10000> color rgb <1, 1, 1> }
+
+plane { -z, -2
+ pigment { color rgb FloorColour }
+}
diff --git a/ksokoban/images/goal.png b/ksokoban/images/goal.png
new file mode 100644
index 00000000..fcac3f41
--- /dev/null
+++ b/ksokoban/images/goal.png
Binary files differ
diff --git a/ksokoban/images/goal.pov b/ksokoban/images/goal.pov
new file mode 100644
index 00000000..ba2fa4a1
--- /dev/null
+++ b/ksokoban/images/goal.pov
@@ -0,0 +1,34 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "floor_common.inc"
+
+torus {
+ 0.35, 0.05
+ rotate <90, 0, 0>
+ translate <0,0,2>
+ pigment { color rgb FloorColour }
+}
+
+cylinder {< 0.35,0,2>, < 10,0,2>, 0.05 pigment { color rgb FloorColour}}
+cylinder {<-0.35,0,2>, <-10,0,2>, 0.05 pigment { color rgb FloorColour}}
+cylinder {<0, 0.35,2>, <0, 10,2>, 0.05 pigment { color rgb FloorColour}}
+cylinder {<0,-0.35,2>, <0,-10,2>, 0.05 pigment { color rgb FloorColour}}
+
+sphere {
+ 2*z, 0.3
+
+ finish {
+ ambient 0.1
+ diffuse 0.3
+ reflection .25
+ specular 1
+ roughness 0.02
+ }
+ interior {
+ ior 2.4
+ }
+ pigment { color rgbf <0.1, 1, 0.2, 0.8>}
+
+ scale <1,1,0.1>
+}
diff --git a/ksokoban/images/halfstone_1.png b/ksokoban/images/halfstone_1.png
new file mode 100644
index 00000000..267b3e45
--- /dev/null
+++ b/ksokoban/images/halfstone_1.png
Binary files differ
diff --git a/ksokoban/images/halfstone_1.pov b/ksokoban/images/halfstone_1.pov
new file mode 100644
index 00000000..e015b666
--- /dev/null
+++ b/ksokoban/images/halfstone_1.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1/2, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ HalfStone
+ texture { StoneTexture translate <0,1,1> }
+}
diff --git a/ksokoban/images/halfstone_2.png b/ksokoban/images/halfstone_2.png
new file mode 100644
index 00000000..96144c60
--- /dev/null
+++ b/ksokoban/images/halfstone_2.png
Binary files differ
diff --git a/ksokoban/images/halfstone_2.pov b/ksokoban/images/halfstone_2.pov
new file mode 100644
index 00000000..afc9fda1
--- /dev/null
+++ b/ksokoban/images/halfstone_2.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1/2, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ HalfStone
+ texture { StoneTexture translate <0,2,0> }
+}
diff --git a/ksokoban/images/halfstone_3.png b/ksokoban/images/halfstone_3.png
new file mode 100644
index 00000000..30994f96
--- /dev/null
+++ b/ksokoban/images/halfstone_3.png
Binary files differ
diff --git a/ksokoban/images/halfstone_3.pov b/ksokoban/images/halfstone_3.pov
new file mode 100644
index 00000000..d6a53bba
--- /dev/null
+++ b/ksokoban/images/halfstone_3.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1/2, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ HalfStone
+ texture { StoneTexture translate <0,3,0> }
+}
diff --git a/ksokoban/images/halfstone_4.png b/ksokoban/images/halfstone_4.png
new file mode 100644
index 00000000..d8137006
--- /dev/null
+++ b/ksokoban/images/halfstone_4.png
Binary files differ
diff --git a/ksokoban/images/halfstone_4.pov b/ksokoban/images/halfstone_4.pov
new file mode 100644
index 00000000..4bb286e6
--- /dev/null
+++ b/ksokoban/images/halfstone_4.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1/2, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ HalfStone
+ texture { StoneTexture translate <0,4,0> }
+}
diff --git a/ksokoban/images/man.png b/ksokoban/images/man.png
new file mode 100644
index 00000000..491e7ebf
--- /dev/null
+++ b/ksokoban/images/man.png
Binary files differ
diff --git a/ksokoban/images/man.pov b/ksokoban/images/man.pov
new file mode 100644
index 00000000..f5d71061
--- /dev/null
+++ b/ksokoban/images/man.pov
@@ -0,0 +1,5 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "floor_common.inc"
+#include "man_common.inc"
diff --git a/ksokoban/images/man_common.inc b/ksokoban/images/man_common.inc
new file mode 100644
index 00000000..87fa7423
--- /dev/null
+++ b/ksokoban/images/man_common.inc
@@ -0,0 +1,59 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "colors.inc"
+
+blob {
+ threshold .5
+
+ sphere { <0, .4, 0>, .2, 1 pigment {Flesh} } // head
+
+
+ sphere { <-.04, .42, -.1>, .025, -1 pigment {Flesh} } // left eye hole
+ sphere { < .04, .42, -.1>, .025, -1 pigment {Flesh} } // right eye hole
+
+ //sphere { <-.04, .42, -.09>, .025, 1 pigment {Flesh} } // left eye
+ //sphere { < .04, .42, -.09>, .025, 1 pigment {Flesh} } // right eye
+
+
+
+ cylinder { <0, .415, -.1>, <0, .4, -.11>, .02, 1 pigment {Flesh} } // nose
+
+
+ cylinder { <0, .4, 0>, <0, .2, 0>, .075, 1 pigment {Flesh} } // neck
+ sphere { <0, .4, 0>, .05, -1 pigment {Flesh} } // head-
+ sphere { <0, .2, 0>, .05, -1 pigment {Flesh} } // shoulder-
+
+ cylinder { <-.2,.2,0>, <.2,.2,0>, .115, .9 pigment {White} } // shoulder
+ cylinder { <-.1,.1,0>, <.1,.1,0>, .115, .9 pigment {White} } // stomach
+ cylinder { <-.1, 0,0>, <.1, 0,0>, .115, .9 pigment {White} } // stomach
+ cylinder { <-.1,-.05,0>, <.1,-.05,0>, .115, 1 pigment {White} } // stomach
+ cylinder { <-.1,-.05,0>, <.1,-.05,0>, .115, -1 pigment {White} } // stomach
+ cylinder { <-.1,-.1,0>, <.1,-.1,0>, .115, .9 pigment {Blue} } // waist
+
+
+// Left arm
+
+ cylinder { <-.2,.2,0>, <-.3, 0,0>, .1, 1 pigment {White } }
+ sphere { <-.2,.2,0>, .1, -1 pigment {White } } // shoulder-
+ cylinder { <-.3,0,0>, <-.2,-.1,-.1>, .075, 1 pigment {Flesh } }
+ sphere { <-.3,0,0>, .075, -1 pigment {Flesh } } // arm-
+
+
+// Right arm
+
+ cylinder { < .2,.2,0>, < .3, 0,0>, .1, 1 pigment {White}}
+ sphere { < .2,.2,0>, .1, -1 pigment {White}} // shoulder-
+ cylinder { < .3,0,0>, < .2,-.1,-.1>, .075, 1 pigment {Flesh}}
+ sphere { < .3,0,0>, .075, -1 pigment {Flesh}} // arm-
+
+ // left leg
+ cylinder { <-.1,-.2,0>, <-.125,-.5,-.025>, .15, 1 pigment {Blue } }
+
+ // right leg
+ cylinder { < .1,-.2,0>, < .125,-.5,-.025>, .15, 1 pigment {Blue } }
+
+
+ scale 0.95
+ translate 0.01*y
+}
diff --git a/ksokoban/images/object.png b/ksokoban/images/object.png
new file mode 100644
index 00000000..f6a842d0
--- /dev/null
+++ b/ksokoban/images/object.png
Binary files differ
diff --git a/ksokoban/images/object.pov b/ksokoban/images/object.pov
new file mode 100644
index 00000000..813af77f
--- /dev/null
+++ b/ksokoban/images/object.pov
@@ -0,0 +1,36 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "floor_common.inc"
+
+object {
+ intersection {
+ plane {-z, 0.3 rotate < 30, 0, 0>}
+ plane {-z, 0.3 rotate < 30, 60, 0>}
+ plane {-z, 0.3 rotate < 30, 120, 0>}
+ plane {-z, 0.3 rotate < 30, 180, 0>}
+ plane {-z, 0.3 rotate < 30, 240, 0>}
+ plane {-z, 0.3 rotate < 30, 300, 0>}
+
+ plane {-z, 0.3 rotate <-50, 0, 0>}
+ plane {-z, 0.3 rotate <-50, 60, 0>}
+ plane {-z, 0.3 rotate <-50, 120, 0>}
+ plane {-z, 0.3 rotate <-50, 180, 0>}
+ plane {-z, 0.3 rotate <-50, 240, 0>}
+ plane {-z, 0.3 rotate <-50, 300, 0>}
+ }
+
+ finish {
+ ambient 0.1
+ diffuse 0.3
+ reflection .25
+ specular 1
+ roughness 0.02
+ }
+ interior {
+ ior 2.4
+ }
+ pigment { color rgbf <1, 0.1, 0.2, 0.8>}
+
+ translate <0, -0.1, 0>
+}
diff --git a/ksokoban/images/saveman.png b/ksokoban/images/saveman.png
new file mode 100644
index 00000000..c859047c
--- /dev/null
+++ b/ksokoban/images/saveman.png
Binary files differ
diff --git a/ksokoban/images/saveman.pov b/ksokoban/images/saveman.pov
new file mode 100644
index 00000000..df6ad750
--- /dev/null
+++ b/ksokoban/images/saveman.pov
@@ -0,0 +1,5 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "goal.pov"
+#include "man_common.inc"
diff --git a/ksokoban/images/starfield.png b/ksokoban/images/starfield.png
new file mode 100644
index 00000000..e09204be
--- /dev/null
+++ b/ksokoban/images/starfield.png
Binary files differ
diff --git a/ksokoban/images/stone_1.png b/ksokoban/images/stone_1.png
new file mode 100644
index 00000000..221975ca
--- /dev/null
+++ b/ksokoban/images/stone_1.png
Binary files differ
diff --git a/ksokoban/images/stone_1.pov b/ksokoban/images/stone_1.pov
new file mode 100644
index 00000000..357abafb
--- /dev/null
+++ b/ksokoban/images/stone_1.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <1,0,0> }
+}
diff --git a/ksokoban/images/stone_2.png b/ksokoban/images/stone_2.png
new file mode 100644
index 00000000..71ea2962
--- /dev/null
+++ b/ksokoban/images/stone_2.png
Binary files differ
diff --git a/ksokoban/images/stone_2.pov b/ksokoban/images/stone_2.pov
new file mode 100644
index 00000000..791e0f9e
--- /dev/null
+++ b/ksokoban/images/stone_2.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <2,0,0> }
+}
diff --git a/ksokoban/images/stone_3.png b/ksokoban/images/stone_3.png
new file mode 100644
index 00000000..a85c5eec
--- /dev/null
+++ b/ksokoban/images/stone_3.png
Binary files differ
diff --git a/ksokoban/images/stone_3.pov b/ksokoban/images/stone_3.pov
new file mode 100644
index 00000000..8d983b5b
--- /dev/null
+++ b/ksokoban/images/stone_3.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <3,0,0> }
+}
diff --git a/ksokoban/images/stone_4.png b/ksokoban/images/stone_4.png
new file mode 100644
index 00000000..5f17e094
--- /dev/null
+++ b/ksokoban/images/stone_4.png
Binary files differ
diff --git a/ksokoban/images/stone_4.pov b/ksokoban/images/stone_4.pov
new file mode 100644
index 00000000..5d3a5636
--- /dev/null
+++ b/ksokoban/images/stone_4.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <4,0,0> }
+}
diff --git a/ksokoban/images/stone_5.png b/ksokoban/images/stone_5.png
new file mode 100644
index 00000000..7a29b25d
--- /dev/null
+++ b/ksokoban/images/stone_5.png
Binary files differ
diff --git a/ksokoban/images/stone_5.pov b/ksokoban/images/stone_5.pov
new file mode 100644
index 00000000..612dfffc
--- /dev/null
+++ b/ksokoban/images/stone_5.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <5,0,0> }
+}
diff --git a/ksokoban/images/stone_6.png b/ksokoban/images/stone_6.png
new file mode 100644
index 00000000..22eefb05
--- /dev/null
+++ b/ksokoban/images/stone_6.png
Binary files differ
diff --git a/ksokoban/images/stone_6.pov b/ksokoban/images/stone_6.pov
new file mode 100644
index 00000000..463c5131
--- /dev/null
+++ b/ksokoban/images/stone_6.pov
@@ -0,0 +1,17 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "stone_common.inc"
+
+camera {
+ orthographic
+ location <0, 0, -50>
+ look_at <0, 0, 0>
+ right <1, 0, 0>
+ up <0, 1/2, 0>
+}
+
+object {
+ Stone
+ texture { StoneTexture translate <6,0,0> }
+}
diff --git a/ksokoban/images/stone_common.inc b/ksokoban/images/stone_common.inc
new file mode 100644
index 00000000..3c23a86d
--- /dev/null
+++ b/ksokoban/images/stone_common.inc
@@ -0,0 +1,32 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "colors.inc"
+#include "stones.inc"
+
+#declare StoneTexture = T_Stone8
+
+background { color rgb <0, 0, 0> }
+
+light_source {
+ <-1000000/3, 1000000/3, -1000000> color rgb <0.625, 0.625, 0.625>
+}
+light_source {
+ <-1000000/3, 1000000/3, -1000000> color rgb <0.625, 0.625, 0.625>
+}
+
+#declare Stone = object {
+ superellipsoid {
+ <1/3, 1/3>
+
+ scale <1/2, 1/4, 1/4>
+ }
+}
+
+#declare HalfStone = object {
+ superellipsoid {
+ <1/2, 1/3>
+
+ scale <1/4, 1/4, 1/4>
+ }
+}
diff --git a/ksokoban/images/treasure.png b/ksokoban/images/treasure.png
new file mode 100644
index 00000000..2560f1ef
--- /dev/null
+++ b/ksokoban/images/treasure.png
Binary files differ
diff --git a/ksokoban/images/treasure.pov b/ksokoban/images/treasure.pov
new file mode 100644
index 00000000..2f4ccfe7
--- /dev/null
+++ b/ksokoban/images/treasure.pov
@@ -0,0 +1,36 @@
+// Pov-ray image source for ksokoban
+// copyright (c) 1998-1999 Anders Widell <awl@hem.passagen.se>
+
+#include "goal.pov"
+
+object {
+ intersection {
+ plane {-z, 0.3 rotate < 30, 0, 0>}
+ plane {-z, 0.3 rotate < 30, 60, 0>}
+ plane {-z, 0.3 rotate < 30, 120, 0>}
+ plane {-z, 0.3 rotate < 30, 180, 0>}
+ plane {-z, 0.3 rotate < 30, 240, 0>}
+ plane {-z, 0.3 rotate < 30, 300, 0>}
+
+ plane {-z, 0.3 rotate <-50, 0, 0>}
+ plane {-z, 0.3 rotate <-50, 60, 0>}
+ plane {-z, 0.3 rotate <-50, 120, 0>}
+ plane {-z, 0.3 rotate <-50, 180, 0>}
+ plane {-z, 0.3 rotate <-50, 240, 0>}
+ plane {-z, 0.3 rotate <-50, 300, 0>}
+ }
+
+ finish {
+ ambient 0.1
+ diffuse 0.3
+ reflection .25
+ specular 1
+ roughness 0.02
+ }
+ interior {
+ ior 2.4
+ }
+ pigment { color rgbf <1, 0.1, 0.2, 0.8>}
+
+ translate <0, -0.1, 0>
+}