[game-data-packager] 252/293: Add support for Quake 4

Simon McVittie smcv at debian.org
Fri Oct 14 00:12:22 UTC 2016


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch quake
in repository game-data-packager.

commit f65adfcda612d73653e0e4c9524f4fe56dbb975c
Author: Simon McVittie <smcv at debian.org>
Date:   Sun Oct 25 22:32:24 2015 +0000

    Add support for Quake 4
    
    This uses the proprietary binaries (there is no open-source engine).
    These packages are currently skipped by default: use
    DEB_BUILD_OPTIONS=quake4 to build them.
---
 Makefile                               |  75 +++++++-
 README.quake4-data                     |  13 ++
 debian/changelog                       |   3 +
 debian/control                         |  56 ++++++
 debian/q4/server.cfg                   |   7 +
 debian/quake4-server.README.Debian     |  35 ++++
 debian/quake4-server.default           |   9 +
 debian/quake4-server.install           |   3 +
 debian/quake4-server.links             |   1 +
 debian/quake4-server.lintian-overrides |   2 +
 debian/quake4-server.manpages          |   1 +
 debian/quake4-server.postinst          |  30 ++++
 debian/quake4-server.postrm            |  16 ++
 debian/quake4-server.service           |  24 +++
 debian/quake4.install                  |  11 ++
 debian/quake4.links                    |   1 +
 debian/quake4.lintian-overrides        |   2 +
 debian/quake4.manpages                 |   1 +
 debian/rules                           |  16 +-
 quake1+2.svg                           | 315 +++++++++++++++++++++++++++------
 quake4-dedicated.6                     |  53 ++++++
 quake4.6                               |  59 ++++++
 quake4.desktop                         |   9 +
 quake4.in                              |  75 ++++++++
 24 files changed, 761 insertions(+), 56 deletions(-)

diff --git a/Makefile b/Makefile
index b74c841..c8cc0b3 100644
--- a/Makefile
+++ b/Makefile
@@ -6,15 +6,18 @@ obj = \
 	build/quake \
 	build/quake2 \
 	build/quake3 \
+	build/quake4 \
 	build/quake-server \
 	build/quake2-server \
 	build/quake3-server \
+	build/quake4-dedicated \
 	build/24/quake.png \
 	build/24/quake-armagon.png \
 	build/24/quake-dissolution.png \
 	build/24/quake2.png \
 	build/24/quake2-reckoning.png \
 	build/24/quake2-groundzero.png \
+	build/24/quake4.png \
 	build/quake.svg \
 	build/quake-armagon.svg \
 	build/quake-dissolution.svg \
@@ -23,6 +26,7 @@ obj = \
 	build/quake2-groundzero.svg \
 	build/quake3.png \
 	build/quake3-teamarena.png \
+	build/quake4.svg \
 	build/48/quake3.png \
 	build/48/quake3-teamarena.png \
 	$(patsubst %,build/%/quake.png,$(layer_sizes)) \
@@ -31,6 +35,7 @@ obj = \
 	$(patsubst %,build/%/quake2.png,$(layer_sizes)) \
 	$(patsubst %,build/%/quake2-reckoning.png,$(layer_sizes)) \
 	$(patsubst %,build/%/quake2-groundzero.png,$(layer_sizes)) \
+	$(patsubst %,build/%/quake4.png,$(layer_sizes)) \
 	$(NULL)
 
 all: $(obj)
@@ -62,6 +67,24 @@ build/quake3: quake3.in Makefile
 		< $< > $@
 	chmod +x $@
 
+build/quake4: quake4.in Makefile
+	install -d build
+	sed \
+		-e 's!@binary@!quake4.x86!' \
+		-e 's!@self@!quake4!' \
+		-e 's!@role@!client!' \
+		< $< > $@
+	chmod +x $@
+
+build/quake4-smp: quake4-smp.in Makefile
+	install -d build
+	sed \
+		-e 's!@binary@!quake4smp.x86!' \
+		-e 's!@self@!quake4-smp!' \
+		-e 's!@role@!client!' \
+		< $< > $@
+	chmod +x $@
+
 build/quake2-server: quake2.in
 	install -d build
 	sed -e 's/@self@/quake2-server/g' \
@@ -89,6 +112,15 @@ build/quake3-server: quake3.in Makefile
 		< $< > $@
 	chmod +x $@
 
+build/quake4-dedicated: quake4.in Makefile
+	install -d build
+	sed \
+		-e 's!@Q4BINARY@!q4ded.x86!' \
+		-e 's!@Q4SELF@!quake4-dedicated!' \
+		-e 's!@Q4ROLE@!server!' \
+		< $< > $@
+	chmod +x $@
+
 build/tmp/recolour-dissolution.svg: quake1+2.svg Makefile
 	install -d build/tmp
 	sed -e 's/#c17d11/#999984/' \
@@ -133,6 +165,10 @@ build/24/quake2.png: build/22/quake2.png
 	install -d build/24
 	convert -bordercolor Transparent -border 1x1 $< $@
 
+build/24/quake4.png: build/22/quake4.png
+	install -d build/24
+	convert -bordercolor Transparent -border 1x1 $< $@
+
 build/24/quake2-%.png: build/22/quake2-%.png
 	install -d build/24
 	convert -bordercolor Transparent -border 1x1 $< $@
@@ -181,6 +217,28 @@ $(patsubst %,build/%/quake2.png,$(layer_sizes)): build/%/quake2.png: quake1+2.sv
 		--export-png=$@ \
 		$<
 
+$(patsubst %,build/%/quake4.png,16 22 32): build/%/quake4.png: quake1+2.svg
+	install -d build/$*
+	inkscape \
+		--export-area=0:0:32:32 \
+		--export-width=$* \
+		--export-height=$* \
+		--export-id=layer-quake4-32 \
+		--export-id-only \
+		--export-png=$@ \
+		$<
+
+$(patsubst %,build/%/quake4.png,48 256): build/%/quake4.png: quake1+2.svg
+	install -d build/$*
+	inkscape \
+		--export-area=0:0:$*:$* \
+		--export-width=$* \
+		--export-height=$* \
+		--export-id=layer-quake4-$* \
+		--export-id-only \
+		--export-png=$@ \
+		$<
+
 $(patsubst %,build/%/quake2-reckoning.png,$(layer_sizes)): build/%/quake2-reckoning.png: build/tmp/recolour-reckoning.svg
 	install -d build/$*
 	inkscape \
@@ -208,7 +266,7 @@ clean:
 
 build/quake.svg: quake1+2.svg Makefile
 	install -d build
-	xmlstarlet ed -d "//*[local-name() = 'g' and @id != 'layer-quake-256']" < $< > build/tmp/quake.svg
+	xmlstarlet ed -d "//*[local-name() = 'g' and @inkscape:groupmode = 'layer' and @id != 'layer-quake-256']" < $< > build/tmp/quake.svg
 	inkscape \
 		--export-area-page \
 		--export-plain-svg=$@ \
@@ -217,7 +275,7 @@ build/quake.svg: quake1+2.svg Makefile
 
 build/quake-%.svg: build/tmp/recolour-%.svg Makefile
 	install -d build
-	xmlstarlet ed -d "//*[local-name() = 'g' and @id != 'layer-quake-256']" < $< > build/tmp/quake-$*.svg
+	xmlstarlet ed -d "//*[local-name() = 'g' and @inkscape:groupmode = 'layer' and @id != 'layer-quake-256']" < $< > build/tmp/quake-$*.svg
 	inkscape \
 		--export-area-page \
 		--export-plain-svg=$@ \
@@ -226,16 +284,25 @@ build/quake-%.svg: build/tmp/recolour-%.svg Makefile
 
 build/quake2.svg: quake1+2.svg Makefile
 	install -d build
-	xmlstarlet ed -d "//*[local-name() = 'g' and @id != 'layer-quake2-256']" < $< > build/tmp/quake2.svg
+	xmlstarlet ed -d "//*[local-name() = 'g' and @inkscape:groupmode = 'layer' and @id != 'layer-quake2-256']" < $< > build/tmp/quake2.svg
 	inkscape \
 		--export-area-page \
 		--export-plain-svg=$@ \
 		build/tmp/quake2.svg
 	rm -f build/tmp/quake2.svg
 
+build/quake4.svg: quake1+2.svg Makefile
+	install -d build
+	xmlstarlet ed -d "//*[local-name() = 'g' and @inkscape:groupmode = 'layer' and @id != 'layer-quake4-256']" < $< > build/tmp/quake4.svg
+	inkscape \
+		--export-area-page \
+		--export-plain-svg=$@ \
+		build/tmp/quake4.svg
+	rm -f build/tmp/quake4.svg
+
 build/quake2-%.svg: build/tmp/recolour-%.svg Makefile
 	install -d build
-	xmlstarlet ed -d "//*[local-name() = 'g' and @id != 'layer-quake2-256']" < $< > build/tmp/quake2-$*.svg
+	xmlstarlet ed -d "//*[local-name() = 'g' and @inkscape:groupmode = 'layer' and @id != 'layer-quake2-256']" < $< > build/tmp/quake2-$*.svg
 	inkscape \
 		--export-area-page \
 		--export-plain-svg=$@ \
diff --git a/README.quake4-data b/README.quake4-data
new file mode 100644
index 0000000..a8be9e4
--- /dev/null
+++ b/README.quake4-data
@@ -0,0 +1,13 @@
+Use game-data-packager to build and install the quake4-data
+or quake4-de-data package.
+
+The quake4-data package requires the commercial game files from any
+non-German version of Quake 4, such as the English version available
+on Steam.
+
+The quake4-de-data package requires the commercial game files
+from the German version of Quake 4, which is incompatible with
+other versions.
+
+Both packages depend on quake4-common-data and quake4-bin, which can
+also be built using game-data-packager.
diff --git a/debian/changelog b/debian/changelog
index 83db1b9..434e396 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,9 @@ quake (15) UNRELEASED; urgency=medium
     and hardens the system against the possibility that files owned
     by Debian-quake3 might become owned by an unrelated user that
     is given the same numeric uid.
+  * Add support for Quake 4, using the proprietary binaries (there is
+    no open-source engine). These packages are currently skipped by
+    default: use DEB_BUILD_OPTIONS=quake4 to build them.
 
  -- Simon McVittie <smcv at debian.org>  Sun, 25 Oct 2015 01:51:37 +0100
 
diff --git a/debian/control b/debian/control
index ea37ade..0f8cd32 100644
--- a/debian/control
+++ b/debian/control
@@ -144,3 +144,59 @@ Description: Quake III Arena dedicated server launcher scripts
  To make this package useful, you will need to create and install the
  non-distributable quake3-data package, by using the game-data-packager
  package. This requires pak0.pk3 from a Quake III installation or CD-ROM.
+
+Package: quake4
+Architecture: i386
+Depends:
+ ${misc:Depends},
+ quake4-bin | game-data-packager (>= 43),
+Suggests:
+ quake4-pb-bin,
+Description: science-fiction-themed first person shooter
+ Quake 4 is a first-person shooter game by Raven Software and id Software,
+ released in 2005. This package contains a launcher script and menu
+ entry to play Quake 4 using the proprietary x86 binaries provided by
+ id Software.
+ .
+ Please note that the Quake 4 engine is not Free Software, and Debian
+ cannot fix any bugs or security flaws in the engine or game code.
+ .
+ To make this package useful, you will need to create and install some
+ non-distributable packages by using the game-data-packager package:
+ quake4-bin, and either quake4-data (for all regions except Germany)
+ or quake4-censored-de-data (for the incompatible version sold in
+ Germany). Creating those packages requires data files from a Quake 4
+ installation or DVD.
+
+Package: quake4-server
+Architecture: i386
+Depends:
+ ${misc:Depends},
+ adduser,
+ quake4-bin | game-data-packager (>= 43),
+ quake4-data | quake4-censored-de-data | game-data-packager (>= 43),
+Recommends:
+ systemd-sysv,
+Suggests:
+ quake4-pb-bin,
+Description: dedicated server for Quake 4
+ This package contains a launcher script and systemd unit to run a
+ Quake 4 server using the proprietary x86 binaries provided by id Software.
+ .
+ Please note that the Quake 4 engine is not Free Software, and Debian
+ cannot fix any bugs or security flaws in the engine or game code.
+ .
+ To mitigate any security flaws that might exist in this server,
+ the systemd unit is not enabled by default, and must be enabled
+ with systemctl if it should start at boot time. The systemd unit
+ uses various security hardening options to prevent the server from
+ escalating its privileges. There is no sysvinit script,
+ since sysvinit does not provide similar security hardening.
+ .
+ To make this package useful, you will need to create and install some
+ non-distributable packages by using the game-data-packager package:
+ quake4-bin, and either quake4-data (for the uncensored
+ version sold on Steam and in countries other than Germany) or
+ quake4-censored-de-data (for the incompatible version sold in Germany).
+ Creating those packages requires data files from a Quake 4 installation
+ or DVD.
diff --git a/debian/q4/server.cfg b/debian/q4/server.cfg
new file mode 100644
index 0000000..c449d98
--- /dev/null
+++ b/debian/q4/server.cfg
@@ -0,0 +1,7 @@
+// Sample server configuration for Quake 4 in Debian
+
+// You can use the exec command to run one of the example configurations
+// included with Quake 4 or your own configuration file placed in
+// /var/games/quake4-server/.quake4/baseq4, or comment out this line and
+// add your own configuration below
+exec dm.cfg
diff --git a/debian/quake4-server.README.Debian b/debian/quake4-server.README.Debian
new file mode 100644
index 0000000..9492c1e
--- /dev/null
+++ b/debian/quake4-server.README.Debian
@@ -0,0 +1,35 @@
+Quake 4 dedicated server for Debian
+===================================
+
+The quake4-server systemd unit runs a dedicated server as
+the user "quake4-server". This is a simple setup suitable for running one
+server on a machine; by default it will cycle through the standard
+Quake 4 deathmatch maps.
+
+The quake4-server user's home directory is /var/games/quake4-server,
+so game files can be found in /var/games/quake4-server/.quake4.
+For convenience, /var/games/quake4-server/quake4 is a symlink to
+that directory.
+
+The /etc/quake4-server directory is symlinked into the game engine's
+search path as etc/quake4-server, so you can place files there and execute
+them with commands like "exec etc/quake4-server/ctf.cfg".
+By default, the init script will use etc/quake4-server/server.cfg.
+
+To set options that can only be configured via the command-line,
+such as net_port, set the variable DAEMON_OPTS
+in /etc/default/quake4-server.
+
+The server can be managed in the usual way, e.g. via service(8)
+and update-rc.d(8) commands like
+
+    service quake4-server stop
+    service quake4-server start
+    update-rc.d quake4-server disable
+    update-rc.d quake4-server enable
+
+Because Quake 4 is proprietary software and might have security flaws
+that Debian cannot fix, the dedicated server is disabled by default.
+To mitigate any security flaws that might exist in it, the systemd unit
+is configured with various security-hardening options, and a
+corresponding sysvinit script is not provided.
diff --git a/debian/quake4-server.default b/debian/quake4-server.default
new file mode 100644
index 0000000..010d60e
--- /dev/null
+++ b/debian/quake4-server.default
@@ -0,0 +1,9 @@
+# Defaults for Quake 4 systemd unit
+
+# Options that are passed to the daemon.
+#
+# In addition to these options, the server will execute commands from
+# /etc/quake4-server/server.cfg using "+exec etc/quake4-server/server.cfg".
+# For most options it's better to edit server.cfg instead, but some options
+# only work on the command-line.
+DAEMON_OPTS=""
diff --git a/debian/quake4-server.install b/debian/quake4-server.install
new file mode 100644
index 0000000..308425c
--- /dev/null
+++ b/debian/quake4-server.install
@@ -0,0 +1,3 @@
+README.quake4-data usr/share/doc/quake4-server
+build/quake4-dedicated usr/games
+debian/q4/server.cfg etc/quake4-server
diff --git a/debian/quake4-server.links b/debian/quake4-server.links
new file mode 100644
index 0000000..a8c81fc
--- /dev/null
+++ b/debian/quake4-server.links
@@ -0,0 +1 @@
+etc/quake4-server                       usr/share/games/quake4/baseq4/etc/quake4-server
diff --git a/debian/quake4-server.lintian-overrides b/debian/quake4-server.lintian-overrides
new file mode 100644
index 0000000..646cddf
--- /dev/null
+++ b/debian/quake4-server.lintian-overrides
@@ -0,0 +1,2 @@
+# verbatim quote
+quake4-server binary: spelling-error-in-copyright ment meant
diff --git a/debian/quake4-server.manpages b/debian/quake4-server.manpages
new file mode 100644
index 0000000..c098498
--- /dev/null
+++ b/debian/quake4-server.manpages
@@ -0,0 +1 @@
+quake4-dedicated.6
diff --git a/debian/quake4-server.postinst b/debian/quake4-server.postinst
new file mode 100644
index 0000000..c27c1ca
--- /dev/null
+++ b/debian/quake4-server.postinst
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  configure)
+    if ! getent passwd quake4-server >/dev/null; then
+      adduser --disabled-password --quiet --system \
+        --home /var/games/quake4-server --no-create-home \
+        --gecos "Quake 4 dedicated server" \
+        --ingroup games quake4-server
+    fi
+    install -d /var/games
+    install -d /var/games/quake4-server
+    chown quake4-server:games /var/games/quake4-server
+    install -d /var/games/quake4-server/.quake4
+    chown quake4-server:games /var/games/quake4-server/.quake4
+    if ! [ -e /var/games/quake4-server/quake4 ]; then
+        ln -s .quake4 /var/games/quake4-server/quake4
+    fi
+  ;;
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/quake4-server.postrm b/debian/quake4-server.postrm
new file mode 100644
index 0000000..a5f8703
--- /dev/null
+++ b/debian/quake4-server.postrm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = "purge" ] ; then
+    # Lock account on purge
+    if [ -f /etc/shadow ]; then
+        usermod -L -e 1 quake4-server
+    else
+        usermod -L quake4-server
+    fi
+    rm -r /var/games/quake4-server
+    rmdir --ignore-fail-on-non-empty /var/games
+fi
diff --git a/debian/quake4-server.service b/debian/quake4-server.service
new file mode 100644
index 0000000..a350be4
--- /dev/null
+++ b/debian/quake4-server.service
@@ -0,0 +1,24 @@
+[Unit]
+Description=Quake 4 game server
+After=network.target
+
+[Service]
+Type=simple
+User=quake4-server
+Environment=DAEMON_OPTS=
+EnvironmentFile=-/etc/default/quake4-server
+ExecStart=/usr/games/quake3-server $DAEMON_OPTS +exec etc/quake4-server/server.cfg
+Restart=on-failure
+RestartPreventExitStatus=72
+# hardening
+CapabilityBoundingSet=
+NoNewPrivileges=true
+PrivateDevices=true
+PrivateTmp=true
+ProtectHome=true
+ProtectSystem=full
+# this game uses proprietary x86-only binaries, even on amd64
+Personality=x86
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/quake4.install b/debian/quake4.install
new file mode 100644
index 0000000..19909b3
--- /dev/null
+++ b/debian/quake4.install
@@ -0,0 +1,11 @@
+build/16/quake4*.png                    usr/share/icons/hicolor/16x16/apps
+build/22/quake4*.png                    usr/share/icons/hicolor/22x22/apps
+build/24/quake4*.png                    usr/share/icons/hicolor/24x24/apps
+build/256/quake4*.png                   usr/share/icons/hicolor/256x256/apps
+build/32/quake4*.png                    usr/share/icons/hicolor/32x32/apps
+build/48/quake4*.png                    usr/share/icons/hicolor/48x48/apps
+build/quake4                            usr/games
+build/quake4*.svg                       usr/share/icons/hicolor/scalable/apps
+README.quake4-data                      usr/lib/quake4
+need-data.sh                            usr/lib/quake4
+quake4.desktop                          usr/share/applications
diff --git a/debian/quake4.links b/debian/quake4.links
new file mode 100644
index 0000000..1aa37a2
--- /dev/null
+++ b/debian/quake4.links
@@ -0,0 +1 @@
+usr/lib/quake4/README.quake4-data usr/share/doc/quake4/README.quake4-data
diff --git a/debian/quake4.lintian-overrides b/debian/quake4.lintian-overrides
new file mode 100644
index 0000000..c419516
--- /dev/null
+++ b/debian/quake4.lintian-overrides
@@ -0,0 +1,2 @@
+# verbatim quote
+quake4 binary: spelling-error-in-copyright ment meant
diff --git a/debian/quake4.manpages b/debian/quake4.manpages
new file mode 100644
index 0000000..4af81bb
--- /dev/null
+++ b/debian/quake4.manpages
@@ -0,0 +1 @@
+quake4.6
diff --git a/debian/rules b/debian/rules
index eab1d8e..0b2add4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,4 +1,18 @@
 #!/usr/bin/make -f
 
+dh_options =
+
+ifeq (,$(filter quake4,$(DEB_BUILD_OPTIONS)))
+dh_options += -Nquake4 -Nquake4-server
+endif
+
 %:
-	dh $@ --parallel --with=systemd
+	dh $@ --parallel --with=systemd $(dh_options)
+
+override_dh_installinit:
+	dh_installinit -pquake4-server --noscripts
+	dh_installinit --remaining-packages
+
+override_dh_systemd_enable:
+	dh_systemd_enable -pquake4-server --no-enable
+	dh_systemd_enable --remaining-packages
diff --git a/quake1+2.svg b/quake1+2.svg
index 01a7e4c..579bd1c 100644
--- a/quake1+2.svg
+++ b/quake1+2.svg
@@ -14,13 +14,32 @@
    height="256"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.1 r9760"
+   inkscape:version="0.91 r13725"
    sodipodi:docname="quake1+2.svg">
   <title
-     id="title3063">Tango-style Quake I and II logos</title>
+     id="title3063">Tango-style Quake 1, 2 and 4 logos</title>
   <defs
      id="defs4">
     <linearGradient
+       id="linearGradient3947-5">
+      <stop
+         id="stop4457"
+         offset="0"
+         style="stop-color:#3a5a1e;stop-opacity:1;" />
+      <stop
+         style="stop-color:#73ae3a;stop-opacity:1;"
+         offset="0.25"
+         id="stop4459" />
+      <stop
+         style="stop-color:#3a5a1e;stop-opacity:1;"
+         offset="0.75"
+         id="stop4461" />
+      <stop
+         id="stop4463"
+         offset="1"
+         style="stop-color:#3a5a1e;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
        id="linearGradient3947">
       <stop
          style="stop-color:#3a5a1e;stop-opacity:1;"
@@ -231,6 +250,43 @@
          stdDeviation="2.1782812"
          id="feGaussianBlur3902" />
     </filter>
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath3862-4">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3864-8"
+         d="M 100,12.34375 C 71.310852,28.243604 52,57.952947 52,92 c 0,46.91303 36.648021,85.61882 84,91.28125 L 136,208 l 12,48 12,-48 0,-24.71875 C 207.35198,177.61882 244,138.91303 244,92 244,57.952947 224.68915,28.243604 196,12.34375 L 196,16 c 19.434,14.599292 32,37.82443 32,64 0,40.1057 -29.50793,73.33691 -68,79.125 L 160,112 c 2.54991,-3.69734 8.90346,-7.4041 11.1875,-8 L 160,104 l -24,0 -10.59375,0 c 2.50649,0.35039 7.74962,2.07991 10.59375,8 l 0,47.125 C 97.507928,153.33691 68, [...]
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#241703;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    </clipPath>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Blur"
+       id="filter4467">
+      <feGaussianBlur
+         stdDeviation="2 2"
+         result="fbSourceGraphic"
+         id="feGaussianBlur4469" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix4471" />
+      <feGaussianBlur
+         id="feGaussianBlur4473"
+         stdDeviation="2 2"
+         result="blur"
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       style="color-interpolation-filters:sRGB;"
+       inkscape:label="Blur"
+       id="filter4318">
+      <feGaussianBlur
+         stdDeviation="2 2"
+         result="blur"
+         id="feGaussianBlur4320" />
+    </filter>
   </defs>
   <sodipodi:namedview
      id="base"
@@ -239,19 +295,19 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="-167"
-     inkscape:cy="105.88"
+     inkscape:zoom="11.07438"
+     inkscape:cx="-0.073320826"
+     inkscape:cy="15.638382"
      inkscape:document-units="px"
-     inkscape:current-layer="layer-quake-256"
+     inkscape:current-layer="layer-quake-32"
      showgrid="true"
      gridtolerance="10"
      showguides="true"
      inkscape:guide-bbox="true"
-     inkscape:window-width="1280"
-     inkscape:window-height="757"
+     inkscape:window-width="1366"
+     inkscape:window-height="704"
      inkscape:window-x="0"
-     inkscape:window-y="26"
+     inkscape:window-y="27"
      inkscape:window-maximized="1">
     <inkscape:grid
        type="xygrid"
@@ -321,10 +377,10 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title>Tango-style Quake I and II logos</dc:title>
+        <dc:title>Tango-style Quake 1, 2 and 4 logos</dc:title>
         <cc:license
            rdf:resource="data:text/plain,Redistribution%20and%20use%20in%20source%20and%20compiled%20forms%2C%20with%20or%20without%20modification%2C%20are%20permitted%20under%20any%20circumstances.%20No%20warranty." />
-        <dc:date>2011-07-08</dc:date>
+        <dc:date>2015-10-25</dc:date>
         <dc:creator>
           <cc:Agent>
             <dc:title>Simon McVittie</dc:title>
@@ -341,7 +397,7 @@
      transform="translate(0,-796.36218)"
      style="display:none">
     <rect
-       style="color:#000000;fill:url(#linearGradient3953);fill-opacity:1;fill-rule:nonzero;stroke:#241703;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3953);fill-opacity:1;fill-rule:nonzero;stroke:#241703;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        id="rect3945"
        width="256"
        height="256"
@@ -349,47 +405,41 @@
        y="608.52112"
        transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,0)" />
     <rect
-       style="color:#000000;fill:#babdb6;stroke:#2e3436;stroke-width:0.65465355;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#babdb6;stroke:#2e3436;stroke-width:0.65465355;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        id="rect3813"
        width="96"
        height="23.999996"
        x="80"
        y="788.36218" />
-    <path
+    <circle
        transform="matrix(1.090909,0,0,1.0454545,-11.636361,787.99854)"
-       d="m 216,96 c 0,48.60106 -39.39894,88 -88,88 C 79.398942,184 40,144.60106 40,96 40,47.398942 79.398942,8 128,8 c 48.60106,0 88,39.398942 88,88 z"
-       sodipodi:ry="88"
-       sodipodi:rx="88"
-       sodipodi:cy="96"
-       sodipodi:cx="128"
        id="path3827"
-       style="color:#000000;fill:#a40000;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
-       sodipodi:type="arc" />
-    <path
-       sodipodi:type="arc"
-       style="color:#000000;fill:#204a87;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#a40000;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       cx="128"
+       cy="96"
+       r="88" />
+    <circle
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#204a87;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        id="path3811"
-       sodipodi:cx="128"
-       sodipodi:cy="88"
-       sodipodi:rx="80"
-       sodipodi:ry="80"
-       d="m 208,88 c 0,44.18278 -35.81722,80 -80,80 C 83.81722,168 48,132.18278 48,88 48,43.81722 83.81722,8 128,8 c 44.18278,0 80,35.81722 80,80 z"
-       transform="translate(0,788.36218)" />
+       transform="translate(0,788.36218)"
+       cx="128"
+       cy="88"
+       r="80" />
     <rect
-       style="color:#000000;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        id="rect3817"
        width="24"
        height="104"
        x="116"
        y="900.36218" />
     <path
-       style="color:#000000;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 104,900.36218 48,0 c -0.59345,-0.79129 -8.97788,3.61797 -12,8 -3.34189,4.8457 -21.9172,4.33535 -24,0 -3.79217,-7.89345 -11.85577,-8.35256 -12,-8 z"
        id="rect3819"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="ccssc" />
     <path
-       style="color:#000000;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 116,1004.3622 24,0 0,0 -12,48 z"
        id="rect3821"
        inkscape:connector-curvature="0"
@@ -400,34 +450,34 @@
        height="104"
        width="24"
        id="rect4005"
-       style="color:#000000;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
     <path
        sodipodi:nodetypes="ccssc"
        inkscape:connector-curvature="0"
        id="path4007"
        d="m 88,900.36218 48,0 c -0.59345,-0.79129 -8.97788,3.61797 -12,8 -3.34189,4.8457 -21.9172,4.33535 -24,0 -3.79217,-7.89345 -11.85577,-8.35256 -12,-8 z"
-       style="color:#000000;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
     <path
        sodipodi:nodetypes="ccccc"
        inkscape:connector-curvature="0"
        id="path4009"
        d="m 100,1004.3622 24,0 0,0 -12,48 z"
-       style="color:#000000;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
     <rect
-       style="color:#000000;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#4e9a06;stroke:#2e3436;stroke-width:1.27475488;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        id="rect4011"
        width="24"
        height="104"
        x="132"
        y="900.36218" />
     <path
-       style="color:#000000;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#ce5c00;stroke:#2e3436;stroke-width:1.22474468;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 120,900.36218 48,0 c -0.59345,-0.79129 -8.97788,3.61797 -12,8 -3.34189,4.8457 -21.9172,4.33535 -24,0 -3.79217,-7.89345 -11.85577,-8.35256 -12,-8 z"
        id="path4013"
        inkscape:connector-curvature="0"
        sodipodi:nodetypes="ccssc" />
     <path
-       style="color:#000000;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 132,1004.3622 24,0 0,0 -12,48 z"
        id="path4015"
        inkscape:connector-curvature="0"
@@ -435,11 +485,174 @@
   </g>
   <g
      inkscape:groupmode="layer"
+     id="layer3"
+     inkscape:label="q4 shapes"
+     style="display:none">
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#a40000;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       d="M 128,0 A 80,80 0 0 1 208,80 80,80 0 0 1 128,160 80,80 0 0 1 48,80 80,80 0 0 1 128,0 Z m 0,0 A 95.999992,91.999996 0 0 0 32,92 95.999992,91.999996 0 0 0 128,184 95.999992,91.999996 0 0 0 224,92 95.999992,91.999996 0 0 0 128,0 Z"
+       id="circle4363"
+       inkscape:connector-curvature="0" />
+    <rect
+       transform="matrix(0.8660254,0.5,-0.5,0.8660254,0,-796.36218)"
+       y="608.52112"
+       x="445.03235"
+       height="256"
+       width="256"
+       id="rect4293"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient3953);fill-opacity:1;fill-rule:nonzero;stroke:#241703;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <circle
+       r="88"
+       cy="96"
+       cx="128"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#5c3566;fill-opacity:1;stroke:#2e3436;stroke-width:0.93638223;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       id="circle4297"
+       transform="matrix(1.090909,0,0,1.0454545,-11.636361,-8.36364)" />
+    <rect
+       y="-8.0000458"
+       x="80"
+       height="54.499996"
+       width="96"
+       id="rect4295"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#babdb6;stroke:#2e3436;stroke-width:0.65465355;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <circle
+       r="80"
+       cy="88"
+       cx="128"
+       transform="translate(0,-8)"
+       id="circle4299"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#204a87;fill-opacity:1;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <rect
+       y="135.33203"
+       x="116"
+       height="88.167976"
+       width="24"
+       id="rect4301"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#4e9a06;stroke:#2e3436;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4305"
+       d="m 116,222.00629 24,0 0,0 -12,50.01125 z"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#fce94f;stroke:#2e3436;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       d="m 116,136.56552 24,0 0,0 -12,-48.000005 z"
+       id="path4334"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#e9b96e;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       d="m 78,160 24.38649,7.91161 -8.39017,14.03293 -20.331029,-9.87132 z"
+       id="rect4336"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4341"
+       d="m 46.003418,131.9809 17.934137,21.96535 -9.981156,2.27729 -11.934136,-16.05851 z"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#e9b96e;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4343"
+       d="m 176.57739,160 -24.38649,7.91161 8.39017,14.03293 20.33103,-9.87132 z"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#e9b96e;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#e9b96e;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       d="m 208.57397,131.9809 -17.93413,21.96535 9.98115,2.27729 11.93414,-16.05851 z"
+       id="path4345"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer-quake4-256"
+     inkscape:label="quake4-256"
+     style="display:inline">
+    <g
+       id="g4521">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4479"
+         d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0 [...]
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4477"
+         d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0 [...]
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+      <path
+         inkscape:connector-curvature="0"
+         id="rect4418"
+         d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0 [...]
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter4467);enable-background:accumulate" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter4467);enable-background:accumulate"
+         d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0 [...]
+         id="path4492"
+         inkscape:connector-curvature="0" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0 [...]
+         id="path4494"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <g
+     style="display:inline"
+     inkscape:label="quake4-48"
+     id="layer-quake4-48"
+     inkscape:groupmode="layer">
+    <g
+       id="g4334">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4308"
+         d="m 15.482682,209.22262 a 17.091582,16.381778 0 0 0 -8.5457917,14.1699 17.091582,16.381778 0 0 0 2.1253205,7.87511 l -0.3411222,0.70112 2.1249734,2.85944 0.77926,-0.17772 a 17.091582,16.381778 0 0 0 2.952221,2.37985 l -0.222547,0.62009 3.619513,1.75803 0.354336,-0.59262 a 17.091582,16.381778 0 0 0 3.56318,0.81206 l 0,7.1799 0.06398,0 2.072464,8.63918 2.072465,-8.63918 0.06398,0 0,-7.18546 a 17.091582,16.381778 0 0 0 3.35176,-0.73694 l 0.312609,0.52306 3.619512,-1.75803 -0.17282 [...]
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter4318);enable-background:accumulate" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter4318);enable-background:accumulate"
+         d="m 15.482682,209.22262 a 17.091582,16.381778 0 0 0 -8.5457917,14.1699 17.091582,16.381778 0 0 0 2.1253205,7.87511 l -0.3411222,0.70112 2.1249734,2.85944 0.77926,-0.17772 a 17.091582,16.381778 0 0 0 2.952221,2.37985 l -0.222547,0.62009 3.619513,1.75803 0.354336,-0.59262 a 17.091582,16.381778 0 0 0 3.56318,0.81206 l 0,7.1799 0.06398,0 2.072464,8.63918 2.072465,-8.63918 0.06398,0 0,-7.18546 a 17.091582,16.381778 0 0 0 3.35176,-0.73694 l 0.312609,0.52306 3.619512,-1.75803 -0.17282 [...]
+         id="path4322"
+         inkscape:connector-curvature="0" />
+      <path
+         style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+         d="m 15.482682,209.22262 a 17.091582,16.381778 0 0 0 -8.5457917,14.1699 17.091582,16.381778 0 0 0 2.1253205,7.87511 l -0.3411222,0.70112 2.1249734,2.85944 0.77926,-0.17772 a 17.091582,16.381778 0 0 0 2.952221,2.37985 l -0.222547,0.62009 3.619513,1.75803 0.354336,-0.59262 a 17.091582,16.381778 0 0 0 3.56318,0.81206 l 0,7.1799 0.06398,0 2.072464,8.63918 2.072465,-8.63918 0.06398,0 0,-7.18546 a 17.091582,16.381778 0 0 0 3.35176,-0.73694 l 0.312609,0.52306 3.619512,-1.75803 -0.17282 [...]
+         id="path4294"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer-quake4-32"
+     inkscape:label="quake4-32"
+     style="display:inline">
+    <path
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#79ff14;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+       d="m 10.3106,224.84518 a 11.383012,10.910281 0 0 0 -5.6915065,9.43717 11.383012,10.910281 0 0 0 1.4154657,5.24483 l -0.2271878,0.46695 1.4152346,1.90439 0.5189879,-0.11836 a 11.383012,10.910281 0 0 0 1.9661823,1.58498 l -0.1482165,0.41298 2.4105993,1.17085 0.235988,-0.39469 a 11.383012,10.910281 0 0 0 2.373082,0.54084 l 0,4.78182 0.04261,0 1.380263,5.7537 1.380264,-5.7537 0.04261,0 0,-4.78553 a 11.383012,10.910281 0 0 0 2.232276,-0.4908 l 0.208198,0.34836 2.410599,-1.17085 -0.1150 [...]
+       id="path4348"
+       inkscape:connector-curvature="0" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
+     id="layer4"
+     inkscape:label="temp"
+     style="display:none">
+    <path
+       inkscape:connector-curvature="0"
+       id="path4465"
+       d="M 82.474415,5.6227342 A 91.051163,87.26986 0 0 0 36.94883,81.109388 91.051163,87.26986 0 0 0 48.270948,123.06206 l -1.817244,3.73505 11.320266,15.23296 4.151319,-0.94674 a 91.051163,87.26986 0 0 0 15.727223,12.67807 l -1.185562,3.30338 19.282056,9.36542 1.887637,-3.157 a 91.051163,87.26986 0 0 0 18.981957,4.32606 l 0,38.24912 0.34086,0 11.04054,46.02307 11.04054,-46.02307 0.34086,0 0,-38.27877 a 91.051163,87.26986 0 0 0 17.85567,-3.92588 l 1.66535,2.78647 19.28205,-9.36542 -0.9 [...]
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+  </g>
+  <g
+     inkscape:groupmode="layer"
      id="layer-quake2-256"
      inkscape:label="quake2-256"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4042);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4042);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="M 80,12.34375 C 51.310852,28.243604 32,57.952947 32,92 c 0,41.47923 28.634235,76.55017 68,88.03125 L 100,208 l 12,48 12,-48 0,-24.09375 c 1.32891,0.0523 2.65768,0.0937 4,0.0937 1.34232,0 2.67109,-0.0415 4,-0.0937 L 132,208 l 12,48 12,-48 0,-27.96875 C 195.36576,168.55017 224,133.47923 224,92 224,57.952947 204.68915,28.243604 176,12.34375 L 176,16 c 19.434,14.599292 32,37.82443 32,64 0,34.32876 -21.63147,63.6164 -52,74.96875 L 156,112 c 2.54991,-3.69734 8.90346,-7.4041 11.1875,- [...]
        id="rect3945-8"
        inkscape:connector-curvature="0" />
@@ -447,7 +660,7 @@
        inkscape:connector-curvature="0"
        id="path3958"
        d="M 40,12.34375 C 11.310852,28.243604 -8,57.952947 -8,92 c 0,41.47923 28.634235,76.55017 68,88.03125 L 60,208 l 12,48 12,-48 0,-24.09375 c 1.32891,0.0523 2.65768,0.0937 4,0.0937 1.34232,0 2.67109,-0.0415 4,-0.0937 L 92,208 l 12,48 12,-48 0,-27.96875 C 155.36576,168.55017 184,133.47923 184,92 184,57.952947 164.68915,28.243604 136,12.34375 L 136,16 c 19.434,14.599292 32,37.82443 32,64 0,34.32876 -21.63147,63.6164 -52,74.96875 L 116,112 c 2.54991,-3.69734 8.90346,-7.4041 11.1875,-8  [...]
-       style="color:#000000;fill:none;stroke:#8ae234;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3900)"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#8ae234;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3900);enable-background:accumulate"
        clip-path="url(#clipPath3984)"
        transform="translate(40,0)" />
   </g>
@@ -460,7 +673,7 @@
        inkscape:connector-curvature="0"
        id="path4160"
        d="m 15,210.31445 c -5.3792153,2.98123 -9,8.55173 -9,14.93555 0,7.77736 5.368919,14.35316 12.75,16.50586 l 0,5.24414 2.25,9 2.25,-9 0,-4.51758 c 0.249171,0.01 0.498315,0.0176 0.75,0.0176 0.251685,0 0.500829,-0.008 0.75,-0.0176 l 0,4.51758 2.25,9 2.25,-9 0,-5.24414 C 36.63108,239.60316 42,233.02736 42,225.25 42,218.86618 38.379216,213.29568 33,210.31445 L 33,211 c 3.643875,2.73737 6,7.09208 6,12 0,6.43664 -4.055901,11.92807 -9.75,14.05664 L 29.25,229 c 0.478108,-0.69325 1.669399,-1 [...]
-       style="color:#000000;fill:url(#linearGradient4166);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4166);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -468,7 +681,7 @@
      inkscape:label="quake2-16"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4192);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4192);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 5,240.77148 c -1.7930718,0.99375 -3,2.85058 -3,4.97852 0,2.59245 1.7896397,4.78439 4.25,5.50195 l 0,1.74805 0.75,3 0.75,-3 0,-1.50586 c 0.083057,0.003 0.166105,0.006 0.25,0.006 0.083895,0 0.166943,-0.003 0.25,-0.006 l 0,1.50586 0.75,3 0.75,-3 0,-1.74805 c 2.46036,-0.71756 4.25,-2.9095 4.25,-5.50195 0,-2.12794 -1.206928,-3.98477 -3,-4.97852 L 11,241 c 1.214625,0.91246 2,2.36403 2,4 0,2.14555 -1.351967,3.97602 -3.25,4.68555 L 9.75,247 c 0.1593693,-0.23108 0.556466,-0.46276 0.69 [...]
        id="path4186"
        inkscape:connector-curvature="0" />
@@ -479,7 +692,7 @@
      inkscape:label="quake2-22"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4183);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4183);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 6.875,235.06079 c -2.4654737,1.3664 -4.125,3.91954 -4.125,6.84546 0,3.56462 2.4607545,6.57853 5.84375,7.56519 l 0,2.40356 1.03125,4.125 1.03125,-4.125 0,-2.07056 c 0.114203,0.005 0.228394,0.008 0.34375,0.008 0.115356,0 0.229547,-0.004 0.34375,-0.008 l 0,2.07056 1.03125,4.125 1.03125,-4.125 0,-2.40356 c 3.382995,-0.98666 5.84375,-4.00057 5.84375,-7.56519 0,-2.92592 -1.659526,-5.47906 -4.125,-6.84546 l 0,0.31421 c 1.670109,1.25463 2.75,3.25054 2.75,5.5 0,2.95013 -1.858955,5.467 [...]
        id="path4177"
        inkscape:connector-curvature="0" />
@@ -490,7 +703,7 @@
      inkscape:label="quake2-32"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4173);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4173);fill-opacity:1;fill-rule:nonzero;stroke:#132601;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 10,225.54297 c -3.5861435,1.98748 -6,5.70115 -6,9.95703 0,5.18491 3.5792793,9.56877 8.5,11.00391 l 0,3.49609 1.5,6 1.5,-6 0,-3.01172 c 0.166114,0.007 0.33221,0.0117 0.5,0.0117 0.16779,0 0.333886,-0.005 0.5,-0.0117 l 0,3.01172 1.5,6 1.5,-6 0,-3.49609 c 4.92072,-1.43514 8.5,-5.819 8.5,-11.00391 0,-4.25588 -2.413856,-7.96955 -6,-9.95703 L 22,226 c 2.42925,1.82491 4,4.72805 4,8 0,4.29109 -2.703934,7.95205 -6.5,9.37109 L 19.5,238 c 0.318739,-0.46217 1.112933,-0.92551 1.398437,-1 L [...]
        id="path4169"
        inkscape:connector-curvature="0" />
@@ -501,12 +714,12 @@
      inkscape:label="quake-256"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4093);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4093);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="M 80,12.34375 C 51.310852,28.243604 32,57.952947 32,92 c 0,46.91303 36.648021,85.61882 84,91.28125 L 116,208 l 12,48 12,-48 0,-24.71875 C 187.35198,177.61882 224,138.91303 224,92 224,57.952947 204.68915,28.243604 176,12.34375 L 176,16 c 19.434,14.599292 32,37.82443 32,64 0,40.1057 -29.50793,73.33691 -68,79.125 L 140,112 c 2.54991,-3.69734 8.90346,-7.4041 11.1875,-8 L 140,104 l -24,0 -10.59375,0 c 2.50649,0.35039 7.74962,2.07991 10.59375,8 l 0,47.125 C 77.507928,153.33691 48,120 [...]
        id="rect3999"
        inkscape:connector-curvature="0" />
     <path
-       style="color:#000000;fill:none;stroke:#e9b96e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3896)"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#e9b96e;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter3896);enable-background:accumulate"
        d="M 100,12.34375 C 71.310852,28.243604 52,57.952947 52,92 c 0,46.91303 36.648021,85.61882 84,91.28125 L 136,208 l 12,48 12,-48 0,-24.71875 C 207.35198,177.61882 244,138.91303 244,92 244,57.952947 224.68915,28.243604 196,12.34375 L 196,16 c 19.434,14.599292 32,37.82443 32,64 0,40.1057 -29.50793,73.33691 -68,79.125 L 160,112 c 2.54991,-3.69734 8.90346,-7.4041 11.1875,-8 L 160,104 l -24,0 -10.59375,0 c 2.50649,0.35039 7.74962,2.07991 10.59375,8 l 0,47.125 C 97.507928,153.33691 68,12 [...]
        id="path3832"
        inkscape:connector-curvature="0"
@@ -519,7 +732,7 @@
      inkscape:label="quake-16"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4145);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4145);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 5,240.77148 c -1.7930718,0.99374 -3,2.85058 -3,4.97852 0,2.93207 2.2905014,5.35118 5.25,5.70508 l 0,1.54492 0.75,3 0.75,-3 0,-1.54492 c 2.959498,-0.3539 5.25,-2.77301 5.25,-5.70508 0,-2.12794 -1.206928,-3.98478 -3,-4.97852 L 11,241 c 1.214625,0.91246 2,2.36402 2,4 0,2.5066 -1.844246,4.58356 -4.25,4.94532 L 8.75,247 c 0.1593695,-0.23108 0.5564662,-0.46276 0.6992182,-0.5 l -0.6992182,0 -1.5,0 -0.6621095,0 C 6.7445465,246.5219 7.072242,246.62999 7.25,247 l 0,2.94532 C 4.8442457, [...]
        id="path4141"
        inkscape:connector-curvature="0" />
@@ -533,7 +746,7 @@
        inkscape:connector-curvature="0"
        id="path4135"
        d="m 6.875,235.06079 c -2.4654737,1.36639 -4.125,3.91954 -4.125,6.84546 0,4.03159 3.1494394,7.35787 7.21875,7.84448 l 0,2.12427 L 11,256 l 1.03125,-4.125 0,-2.12427 c 4.06931,-0.48661 7.21875,-3.81289 7.21875,-7.84448 0,-2.92592 -1.659526,-5.47907 -4.125,-6.84546 l 0,0.31421 c 1.670109,1.25463 2.75,3.25053 2.75,5.5 0,3.44658 -2.535838,6.30239 -5.84375,6.79981 l 0,-4.04981 c 0.219133,-0.31774 0.765141,-0.63629 0.961425,-0.6875 l -0.961425,0 -2.0625,0 -0.9104006,0 c 0.215402,0.0301  [...]
-       style="color:#000000;fill:url(#linearGradient4139);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4139);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -544,7 +757,7 @@
        inkscape:connector-curvature="0"
        id="path4097"
        d="m 15,210.31445 c -5.3792153,2.98123 -9,8.55173 -9,14.93555 0,8.79619 6.871504,16.05353 15.75,17.11523 l 0,4.63477 2.25,9 2.25,-9 0,-4.63477 C 35.128496,241.30353 42,234.04619 42,225.25 42,218.86618 38.379216,213.29568 33,210.31445 L 33,211 c 3.643875,2.73737 6,7.09208 6,12 0,7.51982 -5.532737,13.75067 -12.75,14.83594 L 26.25,229 c 0.478108,-0.69325 1.669399,-1.38827 2.097656,-1.5 l -2.097656,0 -4.5,0 -1.986328,0 c 0.469967,0.0657 1.453054,0.38998 1.986328,1.5 l 0,8.83594 C 14.5 [...]
-       style="color:#000000;fill:url(#linearGradient4101);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4101);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
   </g>
   <g
      inkscape:groupmode="layer"
@@ -552,7 +765,7 @@
      inkscape:label="quake-32"
      style="display:inline">
     <path
-       style="color:#000000;fill:url(#linearGradient4127);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4127);fill-opacity:1;fill-rule:nonzero;stroke:#5f3b01;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
        d="m 10,225.54297 c -3.5861435,1.98748 -6,5.70115 -6,9.95703 0,5.86413 4.5810027,10.70235 10.5,11.41015 l 0,3.08985 1.5,6 1.5,-6 0,-3.08985 C 23.418997,246.20235 28,241.36413 28,235.5 c 0,-4.25588 -2.413856,-7.96955 -6,-9.95703 L 22,226 c 2.42925,1.82491 4,4.72805 4,8 0,5.01321 -3.688491,9.16711 -8.5,9.89063 L 17.5,238 c 0.318739,-0.46217 1.112933,-0.92551 1.398437,-1 L 17.5,237 l -3,0 -1.324219,0 c 0.313312,0.0438 0.968703,0.25999 1.324219,1 l 0,5.89063 C 9.6884913,243.16711 6,23 [...]
        id="path4123"
        inkscape:connector-curvature="0" />
diff --git a/quake4-dedicated.6 b/quake4-dedicated.6
new file mode 100644
index 0000000..407c1cd
--- /dev/null
+++ b/quake4-dedicated.6
@@ -0,0 +1,53 @@
+.TH QUAKE4-DEDICATED 6 2015-10-25
+
+.SH NAME
+quake4-dedicated \- Quake 4 dedicated server
+
+.SH SYNOPSIS
+.B quake4-dedicated
+.BR "" [ \-h | \-\-help ]
+.BR "" [ +set
+.IR option " " value ]...
+
+.SH DESCRIPTION
+.B quake4-dedicated
+is the dedicated server for Quake 4, a first-person shooter game.
+
+.SH OPTIONS
+The wrapper script used for Quake 4 in Debian accepts one option:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help summary
+.PP
+Any console command can also be prefixed with \fB+\fR and used as a
+command-line option (press Ctrl+Alt and the key above Tab to access the
+in-game console).
+
+.SH FILES
+.TP
+\fI~/.quake4\fR
+Configuration and state for Quake 4
+
+.SH ENVIRONMENT
+The wrapper script used to launch Quake 4 allows it to be debugged
+by setting environment variables.
+.TP
+\fBQUAKE4_DEBUGGER=\fIcommand\fR
+A debugger or other prefix to prepend to the Quake 4 command line, such
+as \fBstrace\fR; overridden by \fBQUAKE4_BACKTRACE\fR
+.TP
+\fBQUAKE4_BACKTRACE=1\fR
+Use \fBgdb\fR(1) to get a backtrace if Quake 4 crashes (the \fBgdb\fR
+package must be installed)
+
+.SH AUTHOR
+Quake 4 was written by id Software and originally published by Activision.
+It is proprietary software.
+.PP
+This manual page was written by Simon McVittie for the Debian project (but
+may be used by others). Permission is granted to copy, distribute and/or
+modify this document under the terms of the GNU General Public License,
+Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License
+can be found in /usr/share/common-licenses/GPL-2.
diff --git a/quake4.6 b/quake4.6
new file mode 100644
index 0000000..eb40217
--- /dev/null
+++ b/quake4.6
@@ -0,0 +1,59 @@
+.TH QUAKE4 6 2015-10-25
+
+.SH NAME
+quake4 \- Quake 4 client
+
+.SH SYNOPSIS
+.B quake3
+.BR "" [ \-h | \-\-help ]
+.BR "" [ +set
+.IR option " " value ]...
+
+.SH DESCRIPTION
+.B quake4
+is the client for Quake 4, a first-person shooter game.
+
+.SH OPTIONS
+The wrapper script used for Quake 4 in Debian accepts these options:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help summary
+.TP
+\fB\-\-smp\fR
+Use the multi-threaded version of the client and the modified
+copy of SDL that is bundled with it. The default is to use the
+single-threaded client and the system copy of SDL. Both versions
+are included in the quake4-bin package.
+.PP
+Any console command can also be prefixed with \fB+\fR and used as a
+command-line option (press Ctrl+Alt and the key above Tab to access the
+in-game console).
+
+.SH FILES
+.TP
+\fI~/.quake4\fR
+Configuration and state for Quake 4
+
+.SH ENVIRONMENT
+The wrapper script used to launch Quake 4 allows it to be debugged
+by setting environment variables.
+.TP
+\fBQUAKE4_DEBUGGER=\fIcommand\fR
+A debugger or other prefix to prepend to the Quake 4 command line, such
+as \fBstrace\fR; overridden by \fBQUAKE4_BACKTRACE\fR
+.TP
+\fBQUAKE4_BACKTRACE=1\fR
+Use \fBgdb\fR(1) to get a backtrace if Quake 4 crashes (the \fBgdb\fR
+package must be installed)
+
+.SH AUTHOR
+Quake 4 was written by id Software and originally published by Activision.
+It is proprietary software.
+.PP
+This manual page was written by Simon McVittie for the Debian project (but
+may be used by others). Permission is granted to copy, distribute and/or
+modify this document under the terms of the GNU General Public License,
+Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License
+can be found in /usr/share/common-licenses/GPL-2.
diff --git a/quake4.desktop b/quake4.desktop
new file mode 100644
index 0000000..9f5080b
--- /dev/null
+++ b/quake4.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Name=Quake 4
+Exec=/usr/games/quake4
+Icon=quake4
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
+Keywords=first person shooter;fps;3d;
diff --git a/quake4.in b/quake4.in
new file mode 100644
index 0000000..c8e2638
--- /dev/null
+++ b/quake4.in
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# quake4 or quake4-dedicated
+self=@self@
+# client or server
+role=@role@
+# quake4.x86, quake4smp.x86 or q4ded.x86
+binary=@binary@
+
+pkglibdir="/usr/lib/quake4"
+
+help() {
+  cat <<EOF
+Quake 4 ${role} wrapper for Debian
+
+Usage: ${self} [OPTION]...
+
+ -h, --help\t\tDisplay this help
+EOF
+
+  if [ "$role" = client ] && [ -x "$pkglibdir/quake4smp.x86" ]; then
+    cat <<EOF
+ --smp\t\tUse the multi-threaded version of the client
+EOF
+  fi
+
+  cat <<EOF
+ +<internal command>\tPass commands to the engine
+EOF
+}
+
+while [ "$1" != "" ]; do
+  case "$1" in
+    -h|--help)
+      help
+      exit 0
+      ;;
+    --smp)
+      if [ "$role" = client ] && [ -x "$pkglibdir/quake4smp.x86" ]; then
+        binary=quake4smp.x86
+      fi
+      ;;
+    *)
+      break
+      ;;
+  esac
+  shift
+done
+
+# sanity check: the engine doesn't cope well with missing data
+for i in pak001 pak021 pak022 zpak_english; do
+  if [ -f $pkglibdir/q4base/$i.pk4 ]; then
+    :
+  else
+    if [ "$role" = client ]; then
+      $pkglibdir/need-data.sh "Quake 4" "$(cat $pkglibdir/README.quake4-data)"
+    else
+      echo "Quake 4 data missing, see /usr/share/doc/quake4-server/README.quake4-data"
+    fi
+    exit 72     # EX_OSFILE
+  fi
+done
+
+# Quake 4 expects to run in its installation directory
+cd "$pkglibdir"
+# The SMP binary needs a modified bundled copy of SDL.
+export LD_LIBRARY_PATH="${pkglibdir}${LD_LIBRARY_PATH:+":${LD_LIBRARY_PATH}"}"
+
+if test -n "$QUAKE4_BACKTRACE"; then
+  exec gdb -return-child-result -batch -ex run -ex 'thread apply all bt full' -ex kill -ex quit --args "${pkglibdir}/${binary}" "$@"
+else
+  exec ${QUAKE4_DEBUGGER} "${pkglibdir}/${binary}" "$@"
+fi
+
+# vim:set sw=2 sts=2 et:

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list