aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--games/xgalaga++/COPYING339
-rw-r--r--games/xgalaga++/README3
-rw-r--r--games/xgalaga++/doinst.sh5
-rw-r--r--games/xgalaga++/patches/Makefile.patch69
-rw-r--r--games/xgalaga++/patches/fixup_includes.patch43
-rw-r--r--games/xgalaga++/patches/misc_code_fixups.patch30
-rw-r--r--games/xgalaga++/patches/xgalaga++.desktop.patch13
-rw-r--r--games/xgalaga++/patches/xgalaga++.xpm.patch818
-rw-r--r--games/xgalaga++/slack-desc19
-rw-r--r--games/xgalaga++/xgalaga++.SlackBuild74
-rw-r--r--games/xgalaga++/xgalaga++.info8
11 files changed, 1421 insertions, 0 deletions
diff --git a/games/xgalaga++/COPYING b/games/xgalaga++/COPYING
new file mode 100644
index 0000000000000..a43ea2126fb6b
--- /dev/null
+++ b/games/xgalaga++/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/games/xgalaga++/README b/games/xgalaga++/README
new file mode 100644
index 0000000000000..de182ea0a7953
--- /dev/null
+++ b/games/xgalaga++/README
@@ -0,0 +1,3 @@
+XGalaga++ is a classic vertical scrolling shoot'em up. It requires no X Window
+extension and its window is freely resizable. It is inspired by XGalaga,
+but rewritten from scratch, except for the graphics.
diff --git a/games/xgalaga++/doinst.sh b/games/xgalaga++/doinst.sh
new file mode 100644
index 0000000000000..80be44c1d73eb
--- /dev/null
+++ b/games/xgalaga++/doinst.sh
@@ -0,0 +1,5 @@
+if [ ! -e var/games/xgalaga++/xgalaga++.scores ]; then
+ mv var/games/xgalaga++/xgalaga++.scores.new var/games/xgalaga++/xgalaga++.scores
+fi
+rm -f var/games/xgalaga++/xgalaga++.scores.new
+
diff --git a/games/xgalaga++/patches/Makefile.patch b/games/xgalaga++/patches/Makefile.patch
new file mode 100644
index 0000000000000..4d6ae22554de9
--- /dev/null
+++ b/games/xgalaga++/patches/Makefile.patch
@@ -0,0 +1,69 @@
+diff -Nur xgalaga++-0.8.orig/Makefile xgalaga++-0.8/Makefile
+--- xgalaga++-0.8.orig/Makefile 2008-05-21 18:23:56.000000000 -0500
++++ xgalaga++-0.8/Makefile 2009-04-17 23:02:18.249879314 -0500
+@@ -10,7 +10,7 @@
+ EXE = xgalaga++
+
+ # name of manual (leave empty if none)
+-MANUAL = xgalaga++.6x
++MANUAL = xgalaga++.6
+
+ # source files suffix (all source files must have the same suffix)
+ SOURCE_SUFFIX = cc
+@@ -26,19 +26,21 @@
+
+ # installation directories
+ installprefix = /usr
+-bindir = $(installprefix)/games
+-mandir = $(installprefix)/share/man/man6
++bindir = $(installprefix)/bin
++mandir = $(installprefix)/man/man6
+
+ # preprocessor options to find all included files
+-INC_PATH = -I$(srcdir) -I/usr/X11R6/include
++INC_PATH = -I$(srcdir) -I/usr/include/X11
+
+ # libraries link options ('-lm' is common to link with the math library)
+-LNK_LIBS = -lm -lX11 -lXpm -L/usr/X11R6/lib/
++LNK_LIBS = -lm -lX11 -lXpm -L/usr/lib/X11/
+
+ # other compilation options
+ # The high scores file is only writable by the executable and shared
+ # by all players.
+-HIGH_SCORES_FILE=/var/games/xgalaga++.scores
++SCORE_DIR=/var/games/xgalaga++
++SCORE_FILE=xgalaga++.scores
++HIGH_SCORES_FILE=$(SCORE_DIR)/$(SCORE_FILE)
+ #HIGH_SCORES_FILE=.xgalaga++.scores
+
+ # This group is used for the executable and high scores file.
+@@ -249,10 +251,22 @@
+ # Installation procedure
+ # Customized for XGalaga++
+ install:
+- cp $(EXE) $(bindir)
+- if [ -n "$(MANUAL)" ]; then cp $(MANUAL) $(mandir); fi
+- if [ -n "$(EXE_GROUP)" ]; then chgrp $(EXE_GROUP) $(bindir)/$(EXE); fi
+- chmod g+s $(bindir)/$(EXE)
+- touch $(HIGH_SCORES_FILE)
+- if [ -n "$(EXE_GROUP)" ]; then chgrp $(EXE_GROUP) $(HIGH_SCORES_FILE); fi
+- chmod 664 $(HIGH_SCORES_FILE)
++ @echo "Installing dirs under $(DESTDIR)..."
++ @install -d -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(mandir) \
++ $(DESTDIR)/usr/share/pixmaps $(DESTDIR)/usr/share/applications
++ @install -d -m 775 $(DESTDIR)/usr/share/xgalaga++
++ @echo "Installing $(EXE)..."
++ @install -c -m 755 $(EXE) $(DESTDIR)$(bindir)
++ @chgrp $(EXE_GROUP) $(DESTDIR)$(bindir)/$(EXE)
++ @chmod g+s $(DESTDIR)$(bindir)/$(EXE)
++ @echo "Installing $(MANUAL)..."
++ @install -c -m 644 $(MANUAL) $(DESTDIR)$(mandir)
++ @echo "Installing $(EXE).scores..."
++ @install -d -m 775 $(DESTDIR)$(SCORE_DIR)
++ @touch $(DESTDIR)$(HIGH_SCORES_FILE)
++ @chgrp $(EXE_GROUP) $(DESTDIR)$(HIGH_SCORES_FILE)
++ @chmod 664 $(DESTDIR)$(HIGH_SCORES_FILE)
++ @echo "Installing $(EXE).xpm..."
++ @install -c -m 644 $(EXE).xpm $(DESTDIR)/usr/share/pixmaps
++ @echo "Installing $(EXE).desktop..."
++ @install -c -m 644 $(EXE).desktop $(DESTDIR)/usr/share/applications
diff --git a/games/xgalaga++/patches/fixup_includes.patch b/games/xgalaga++/patches/fixup_includes.patch
new file mode 100644
index 0000000000000..97f7967d8c433
--- /dev/null
+++ b/games/xgalaga++/patches/fixup_includes.patch
@@ -0,0 +1,43 @@
+diff -Naur xgalaga++-0.8.orig/config.cc xgalaga++-0.8/config.cc
+--- xgalaga++-0.8.orig/config.cc 2008-05-21 02:14:32.000000000 +0000
++++ xgalaga++-0.8/config.cc 2009-04-02 01:57:34.000000000 +0000
+@@ -4,6 +4,7 @@
+ #include <pwd.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <stdlib.h>
+
+
+ namespace {
+diff -Naur xgalaga++-0.8.orig/explosion.cc xgalaga++-0.8/explosion.cc
+--- xgalaga++-0.8.orig/explosion.cc 2004-03-07 04:52:37.000000000 +0000
++++ xgalaga++-0.8/explosion.cc 2009-04-02 01:24:06.000000000 +0000
+@@ -1,5 +1,6 @@
+ #include "explosion.h"
+ #include "config.h"
++#include <cstdlib>
+
+
+ /*
+diff -Naur xgalaga++-0.8.orig/gfxinterface.cc xgalaga++-0.8/gfxinterface.cc
+--- xgalaga++-0.8.orig/gfxinterface.cc 2008-05-21 02:10:31.000000000 +0000
++++ xgalaga++-0.8/gfxinterface.cc 2009-04-02 01:24:06.000000000 +0000
+@@ -3,6 +3,7 @@
+ #include <cmath>
+ #include <stdexcept>
+ #include <vector>
++#include <cstdlib>
+
+
+
+diff -Naur xgalaga++-0.8.orig/menu.cc xgalaga++-0.8/menu.cc
+--- xgalaga++-0.8.orig/menu.cc 2008-05-21 23:02:26.000000000 +0000
++++ xgalaga++-0.8/menu.cc 2009-04-02 01:24:06.000000000 +0000
+@@ -13,6 +13,7 @@
+ #include <iomanip>
+ #include <stdexcept>
+ #include <sstream>
++#include <cstring>
+
+
+ StartMenu * StartMenu::singleton_ (0);
diff --git a/games/xgalaga++/patches/misc_code_fixups.patch b/games/xgalaga++/patches/misc_code_fixups.patch
new file mode 100644
index 0000000000000..f04b542789dfe
--- /dev/null
+++ b/games/xgalaga++/patches/misc_code_fixups.patch
@@ -0,0 +1,30 @@
+diff -Naur xgalaga++-0.8.orig/managers.cc xgalaga++-0.8/managers.cc
+--- xgalaga++-0.8.orig/managers.cc 2008-05-21 07:37:59.000000000 +0000
++++ xgalaga++-0.8/managers.cc 2009-04-02 01:24:06.000000000 +0000
+@@ -218,9 +218,9 @@
+
+ void AliensManager::Move() {
+ base_cruise_.x += base_cruise_speed_;
+- if (base_cruise_speed_ < 0 && base_cruise_.x <= g_alien_width / 2 ||
+- base_cruise_speed_ > 0 && base_cruise_.x >= X11::Inst().WindowWidth() -
+- g_alien_width / 2 - (max_convoy_size_ - 1) * g_aliens_hspacing) {
++ if ((base_cruise_speed_ < 0 && base_cruise_.x <= g_alien_width / 2) ||
++ (base_cruise_speed_ > 0 && base_cruise_.x >= X11::Inst().WindowWidth() -
++ g_alien_width / 2 - (max_convoy_size_ - 1) * g_aliens_hspacing)) {
+ base_cruise_speed_ *= -1;
+ }
+
+diff -Naur xgalaga++-0.8.orig/menu.cc xgalaga++-0.8/menu.cc
+--- xgalaga++-0.8.orig/menu.cc 2008-05-21 23:02:26.000000000 +0000
++++ xgalaga++-0.8/menu.cc 2009-04-02 01:24:06.000000000 +0000
+@@ -225,8 +226,8 @@
+ (look_for_player || pos.y < last_window_size_.y - LineHeight());
+ ++it) {
+ ++rank;
+- if (rank > scroll_scores_ &&
+- !look_for_player || look_for_player && it->Name() == player_name) {
++ if ((rank > scroll_scores_ &&
++ !look_for_player) || (look_for_player && it->Name() == player_name)) {
+ // Construct this line
+ ost.str("");
+ if (it->Value() != last_score) {
diff --git a/games/xgalaga++/patches/xgalaga++.desktop.patch b/games/xgalaga++/patches/xgalaga++.desktop.patch
new file mode 100644
index 0000000000000..7c19e8a79e941
--- /dev/null
+++ b/games/xgalaga++/patches/xgalaga++.desktop.patch
@@ -0,0 +1,13 @@
+diff -Naur xgalaga++-0.8.orig/xgalaga++.desktop xgalaga++-0.8/xgalaga++.desktop
+--- xgalaga++-0.8.orig/xgalaga++.desktop 1970-01-01 00:00:00.000000000 +0000
++++ xgalaga++-0.8/xgalaga++.desktop 2009-04-02 01:24:06.000000000 +0000
+@@ -0,0 +1,9 @@
++[Desktop Entry]
++Version=1.0
++Type=Application
++Name=XGalaga++
++Comment=A classic shoot 'em up arcade game inspired by XGalaga
++TryExec=xgalaga++
++Exec=xgalaga++
++Icon=/usr/share/pixmaps/xgalaga++.xpm
++Categories=Game;ArcadeGame;
diff --git a/games/xgalaga++/patches/xgalaga++.xpm.patch b/games/xgalaga++/patches/xgalaga++.xpm.patch
new file mode 100644
index 0000000000000..f848d40a38884
--- /dev/null
+++ b/games/xgalaga++/patches/xgalaga++.xpm.patch
@@ -0,0 +1,818 @@
+diff -Naur xgalaga++-0.8.orig/xgalaga++.xpm xgalaga++-0.8/xgalaga++.xpm
+--- xgalaga++-0.8.orig/xgalaga++.xpm 1970-01-01 00:00:00.000000000 +0000
++++ xgalaga++-0.8/xgalaga++.xpm 2009-04-02 01:24:06.000000000 +0000
+@@ -0,0 +1,814 @@
++/* XPM */
++static char * xgalaga++_xpm[] = {
++"48 48 763 2",
++" c None",
++". c #321700",
++"+ c #280B00",
++"@ c #200300",
++"# c #5B2F00",
++"$ c #4E2200",
++"% c #401100",
++"& c #4C1900",
++"* c #734F00",
++"= c #B7A700",
++"- c #E8E500",
++"; c #F2EE00",
++"> c #E2E200",
++", c #D9DB00",
++"' c #DEDD00",
++") c #E4E200",
++"! c #E5EA00",
++"~ c #F0EF00",
++"{ c #D9D700",
++"] c #AA9100",
++"^ c #5E3A00",
++"/ c #471400",
++"( c #4C1A00",
++"_ c #5B2B00",
++": c #572F00",
++"< c #7E4000",
++"[ c #663300",
++"} c #653400",
++"| c #653500",
++"1 c #7C4B00",
++"2 c #A48100",
++"3 c #D9CA00",
++"4 c #FEFD00",
++"5 c #FFFF00",
++"6 c #FAF900",
++"7 c #EEEE00",
++"8 c #F2EF00",
++"9 c #F5F000",
++"0 c #FAFA00",
++"a c #F8F500",
++"b c #CDB900",
++"c c #8E6A00",
++"d c #714100",
++"e c #6D3800",
++"f c #703A00",
++"g c #683400",
++"h c #A45000",
++"i c #904400",
++"j c #823C00",
++"k c #884C00",
++"l c #9B6F00",
++"m c #B19800",
++"n c #C5B900",
++"o c #DFDD00",
++"p c #EFF200",
++"q c #EDEA00",
++"r c #DDD900",
++"s c #CECC00",
++"t c #CDCA00",
++"u c #CACA00",
++"v c #DAD800",
++"w c #ECEB00",
++"x c #F0ED00",
++"y c #DDD500",
++"z c #BFB000",
++"A c #A68B00",
++"B c #916500",
++"C c #894B00",
++"D c #894000",
++"E c #924400",
++"F c #B65F00",
++"G c #9E4E00",
++"H c #914100",
++"I c #934200",
++"J c #A66100",
++"K c #C29D00",
++"L c #D6D100",
++"M c #D8E100",
++"N c #D1D800",
++"O c #BFC300",
++"P c #B3B300",
++"Q c #9FA200",
++"R c #9EA000",
++"S c #A8A800",
++"T c #A1A300",
++"U c #A0A500",
++"V c #B4B800",
++"W c #CDCD00",
++"X c #D6DA00",
++"Y c #DDE000",
++"Z c #D5C900",
++"` c #B98D00",
++" . c #995300",
++".. c #903E00",
++"+. c #9F4900",
++"@. c #AB5600",
++"#. c #B15E00",
++"$. c #A24F00",
++"%. c #9D4E00",
++"&. c #8E4100",
++"*. c #8F3F00",
++"=. c #A15E00",
++"-. c #CBA200",
++";. c #DFD100",
++">. c #D3CD00",
++",. c #B3AA00",
++"'. c #918900",
++"). c #868200",
++"!. c #808300",
++"~. c #848900",
++"{. c #868C00",
++"]. c #818700",
++"^. c #827F00",
++"/. c #8F8B00",
++"(. c #A09700",
++"_. c #B9B400",
++":. c #E3D400",
++"<. c #DFC700",
++"[. c #BB8C00",
++"}. c #944F00",
++"|. c #904000",
++"1. c #9E4D00",
++"2. c #9F5000",
++"3. c #934700",
++"4. c #9F4F00",
++"5. c #9D4F00",
++"6. c #9C4D00",
++"7. c #8C4300",
++"8. c #844000",
++"9. c #874C00",
++"0. c #A77200",
++"a. c #C19100",
++"b. c #B68E00",
++"c. c #967100",
++"d. c #755500",
++"e. c #5F4D00",
++"f. c #624A00",
++"g. c #745600",
++"h. c #917100",
++"i. c #C09400",
++"j. c #C89200",
++"k. c #A06800",
++"l. c #814400",
++"m. c #7C3C00",
++"n. c #904500",
++"o. c #A15000",
++"p. c #A45300",
++"q. c #AA5600",
++"r. c #994E00",
++"s. c #A05000",
++"t. c #813F00",
++"u. c #663200",
++"v. c #6B3800",
++"w. c #8E4E00",
++"x. c #AA5D00",
++"y. c #954F00",
++"z. c #7C3F00",
++"A. c #6D3C00",
++"B. c #6C3E00",
++"C. c #6C3900",
++"D. c #834600",
++"E. c #9C5500",
++"F. c #A15700",
++"G. c #804400",
++"H. c #663600",
++"I. c #6A3700",
++"J. c #8A4800",
++"K. c #9E4F00",
++"L. c #A65300",
++"M. c #A55500",
++"N. c #AA5500",
++"O. c #9D4D00",
++"P. c #A25000",
++"Q. c #A95600",
++"R. c #7D3E00",
++"S. c #5D2C00",
++"T. c #592700",
++"U. c #6C2E00",
++"V. c #7E3400",
++"W. c #8F3E00",
++"X. c #954500",
++"Y. c #A04F00",
++"Z. c #974A00",
++"`. c #783A00",
++" + c #914400",
++".+ c #9A4700",
++"++ c #984500",
++"@+ c #873A00",
++"#+ c #7E3800",
++"$+ c #663000",
++"%+ c #4F2600",
++"&+ c #613000",
++"*+ c #874300",
++"=+ c #A05100",
++"-+ c #AA5800",
++";+ c #A45200",
++">+ c #A05200",
++",+ c #A55300",
++"'+ c #A35000",
++")+ c #994D00",
++"!+ c #7D3D00",
++"~+ c #5D2B00",
++"{+ c #522700",
++"]+ c #512400",
++"^+ c #652A00",
++"/+ c #BE5D00",
++"(+ c #D26800",
++"_+ c #AC5500",
++":+ c #6A2900",
++"<+ c #3C1800",
++"[+ c #2E0E00",
++"}+ c #3C1100",
++"|+ c #BB5E00",
++"1+ c #D26A00",
++"2+ c #B95C00",
++"3+ c #843D00",
++"4+ c #5F2A00",
++"5+ c #4E2400",
++"6+ c #542A00",
++"7+ c #673200",
++"8+ c #854200",
++"9+ c #A35200",
++"0+ c #A15100",
++"a+ c #A55100",
++"b+ c #A85600",
++"c+ c #924600",
++"d+ c #964800",
++"e+ c #9A4E00",
++"f+ c #994C00",
++"g+ c #A75400",
++"h+ c #A85500",
++"i+ c #954C00",
++"j+ c #7D3F00",
++"k+ c #562B00",
++"l+ c #5E2F00",
++"m+ c #814000",
++"n+ c #C16400",
++"o+ c #E17500",
++"p+ c #B75800",
++"q+ c #884100",
++"r+ c #632A00",
++"s+ c #5F2900",
++"t+ c #6A2D00",
++"u+ c #8B3F00",
++"v+ c #D67100",
++"w+ c #E17600",
++"x+ c #AF5B00",
++"y+ c #723B00",
++"z+ c #552B00",
++"A+ c #5C2E00",
++"B+ c #824200",
++"C+ c #9C4F00",
++"D+ c #AB5700",
++"E+ c #9F4E00",
++"F+ c #9F4D00",
++"G+ c #5A2B00",
++"H+ c #7F3E00",
++"I+ c #8F4400",
++"J+ c #954A00",
++"K+ c #8B4500",
++"L+ c #8F4600",
++"M+ c #A35100",
++"N+ c #C16200",
++"O+ c #CA6800",
++"P+ c #CB6A00",
++"Q+ c #BA6200",
++"R+ c #9A5200",
++"S+ c #713C00",
++"T+ c #582C00",
++"U+ c #733B00",
++"V+ c #C86800",
++"W+ c #C46500",
++"X+ c #BE6000",
++"Y+ c #AB5800",
++"Z+ c #A35400",
++"`+ c #B15800",
++" @ c #BD6200",
++".@ c #CC6900",
++"+@ c #C76700",
++"@@ c #9B5200",
++"#@ c #5F3200",
++"$@ c #572D00",
++"%@ c #7C4300",
++"&@ c #A25800",
++"*@ c #BD6500",
++"=@ c #CC6C00",
++"-@ c #C66900",
++";@ c #B85F00",
++">@ c #9C4B00",
++",@ c #904700",
++"'@ c #954B00",
++")@ c #823F00",
++"!@ c #552900",
++"~@ c #5D2E00",
++"{@ c #773B00",
++"]@ c #9C4E00",
++"^@ c #924700",
++"/@ c #944800",
++"(@ c #B45A00",
++"_@ c #D97100",
++":@ c #ED7D00",
++"<@ c #F18000",
++"[@ c #E97A00",
++"}@ c #CE6C00",
++"|@ c #944C00",
++"1@ c #623100",
++"2@ c #6A3400",
++"3@ c #924900",
++"4@ c #B15B00",
++"5@ c #E47900",
++"6@ c #EA8100",
++"7@ c #EB8200",
++"8@ c #F08200",
++"9@ c #E07500",
++"0@ c #C36500",
++"a@ c #814100",
++"b@ c #A05400",
++"c@ c #DA7400",
++"d@ c #F28100",
++"e@ c #EF8000",
++"f@ c #C86900",
++"g@ c #A25200",
++"h@ c #753B00",
++"i@ c #663400",
++"j@ c #522900",
++"k@ c #6D3400",
++"l@ c #6E3500",
++"m@ c #B35A00",
++"n@ c #BF6200",
++"o@ c #BC5F00",
++"p@ c #C66500",
++"q@ c #D46E00",
++"r@ c #E97900",
++"s@ c #F27F00",
++"t@ c #F27E00",
++"u@ c #DA7200",
++"v@ c #7B3C00",
++"w@ c #7A3C00",
++"x@ c #914500",
++"y@ c #A95400",
++"z@ c #F68700",
++"A@ c #F48D00",
++"B@ c #F69100",
++"C@ c #FF9900",
++"D@ c #EA7F00",
++"E@ c #9E4C00",
++"F@ c #864100",
++"G@ c #7A3D00",
++"H@ c #864500",
++"I@ c #B45E00",
++"J@ c #E77A00",
++"K@ c #F17F00",
++"L@ c #EC7C00",
++"M@ c #D06D00",
++"N@ c #C76800",
++"O@ c #C36400",
++"P@ c #BA6000",
++"Q@ c #A45400",
++"R@ c #894400",
++"S@ c #653200",
++"T@ c #592B00",
++"U@ c #5D2D00",
++"V@ c #6B3400",
++"W@ c #793A00",
++"X@ c #994B00",
++"Y@ c #B55B00",
++"Z@ c #D26C00",
++"`@ c #E37700",
++" # c #E87900",
++".# c #E27500",
++"+# c #D36E00",
++"@# c #CA6900",
++"## c #C06200",
++"$# c #CA6700",
++"%# c #D46D00",
++"&# c #C96600",
++"*# c #AD5900",
++"=# c #944A00",
++"-# c #8B4400",
++";# c #9C4C00",
++"># c #A74F00",
++",# c #BC5B00",
++"'# c #B35900",
++")# c #A85400",
++"!# c #974E00",
++"~# c #944B00",
++"{# c #AE5900",
++"]# c #CF6C00",
++"^# c #CB6800",
++"/# c #C86700",
++"(# c #CD6D00",
++"_# c #CD6E00",
++":# c #D87200",
++"<# c #E77B00",
++"[# c #894500",
++"}# c #793D00",
++"|# c #6F3700",
++"1# c #5F2E00",
++"2# c #6D3500",
++"3# c #894300",
++"4# c #D76E00",
++"5# c #EE7D00",
++"6# c #F78200",
++"7# c #F48100",
++"8# c #D77100",
++"9# c #B45B00",
++"0# c #AA5400",
++"a# c #B05700",
++"b# c #AD5700",
++"c# c #A45100",
++"d# c #974800",
++"e# c #AE5800",
++"f# c #A95500",
++"g# c #9A4B00",
++"h# c #964A00",
++"i# c #A55200",
++"j# c #B55C00",
++"k# c #C96900",
++"l# c #E27900",
++"m# c #EC7E00",
++"n# c #EF7E00",
++"o# c #D66F00",
++"p# c #713900",
++"q# c #713800",
++"r# c #743800",
++"s# c #793B00",
++"t# c #834100",
++"u# c #C06400",
++"v# c #D77000",
++"w# c #D97200",
++"x# c #864000",
++"y# c #873F00",
++"z# c #954800",
++"A# c #A14F00",
++"B# c #904800",
++"C# c #753500",
++"D# c #7A3800",
++"E# c #773800",
++"F# c #834200",
++"G# c #974B00",
++"H# c #964900",
++"I# c #874100",
++"J# c #8E4600",
++"K# c #CD6C00",
++"L# c #D36F00",
++"M# c #D06E00",
++"N# c #934900",
++"O# c #783B00",
++"P# c #763A00",
++"Q# c #703700",
++"R# c #914800",
++"S# c #803F00",
++"T# c #673600",
++"U# c #BB6000",
++"V# c #B96000",
++"W# c #AC5A00",
++"X# c #AA5700",
++"Y# c #693400",
++"Z# c #773900",
++"`# c #893F00",
++" $ c #8B4100",
++".$ c #673300",
++"+$ c #6D3700",
++"@$ c #A15300",
++"#$ c #B05A00",
++"$$ c #BC6000",
++"%$ c #B85D00",
++"&$ c #763B00",
++"*$ c #5F2F00",
++"=$ c #834000",
++"-$ c #7F4200",
++";$ c #7A4100",
++">$ c #834300",
++",$ c #964B00",
++"'$ c #9C5000",
++")$ c #6C3600",
++"!$ c #753A00",
++"~$ c #884200",
++"{$ c #A25100",
++"]$ c #B75C00",
++"^$ c #BC5D00",
++"/$ c #9E5000",
++"($ c #7C3E00",
++"_$ c #6E3900",
++":$ c #6C3800",
++"<$ c #AD5800",
++"[$ c #AF5800",
++"}$ c #7F4000",
++"|$ c #763D00",
++"1$ c #874500",
++"2$ c #9B4E00",
++"3$ c #A75300",
++"4$ c #B05900",
++"5$ c #B76000",
++"6$ c #B05D00",
++"7$ c #995000",
++"8$ c #874400",
++"9$ c #773A00",
++"0$ c #803E00",
++"a$ c #7E3F00",
++"b$ c #723700",
++"c$ c #CD6B00",
++"d$ c #E07700",
++"e$ c #E57800",
++"f$ c #C56600",
++"g$ c #814200",
++"h$ c #AE5A00",
++"i$ c #B15C00",
++"j$ c #BB6300",
++"k$ c #BB6200",
++"l$ c #B25B00",
++"m$ c #BB5F00",
++"n$ c #AD5B00",
++"o$ c #733A00",
++"p$ c #502600",
++"q$ c #8D4400",
++"r$ c #BD6100",
++"s$ c #F98600",
++"t$ c #F38200",
++"u$ c #B25A00",
++"v$ c #EA7E00",
++"w$ c #E67A00",
++"x$ c #9B4D00",
++"y$ c #C66800",
++"z$ c #A45600",
++"A$ c #492300",
++"B$ c #A34E00",
++"C$ c #A85200",
++"D$ c #C66700",
++"E$ c #CB6B00",
++"F$ c #BD6000",
++"G$ c #AE5600",
++"H$ c #A44F00",
++"I$ c #A14E00",
++"J$ c #DB7400",
++"K$ c #D16D00",
++"L$ c #B95E00",
++"M$ c #8E4400",
++"N$ c #944700",
++"O$ c #944D00",
++"P$ c #954D00",
++"Q$ c #854500",
++"R$ c #B55900",
++"S$ c #AD5500",
++"T$ c #8C4900",
++"U$ c #844700",
++"V$ c #824400",
++"W$ c #8E4800",
++"X$ c #AE5500",
++"Y$ c #B15600",
++"Z$ c #914B00",
++"`$ c #924A00",
++" % c #924800",
++".% c #984B00",
++"+% c #994900",
++"@% c #A55400",
++"#% c #8E4700",
++"$% c #763900",
++"%% c #6C3400",
++"&% c #6A3300",
++"*% c #8C4500",
++"=% c #7A3B00",
++"-% c #6E3600",
++";% c #804200",
++">% c #A75200",
++",% c #602E00",
++"'% c #643100",
++")% c #7F3D00",
++"!% c #B65A00",
++"~% c #D26E00",
++"{% c #AD5A00",
++"]% c #8A4600",
++"^% c #703800",
++"/% c #653100",
++"(% c #612E00",
++"_% c #9D5000",
++":% c #A05300",
++"<% c #9F5100",
++"[% c #974C00",
++"}% c #874200",
++"|% c #864200",
++"1% c #623000",
++"2% c #683300",
++"3% c #D56F00",
++"4% c #EB7F00",
++"5% c #E57A00",
++"6% c #CC6B00",
++"7% c #8D4600",
++"8% c #733800",
++"9% c #5E2E00",
++"0% c #6A3500",
++"a% c #914900",
++"b% c #BF6300",
++"c% c #E07600",
++"d% c #EA7A00",
++"e% c #DC7200",
++"f% c #B65B00",
++"g% c #833F00",
++"h% c #633000",
++"i% c #5B2D00",
++"j% c #582B00",
++"k% c #603000",
++"l% c #B25900",
++"m% c #D67000",
++"n% c #EC7D00",
++"o% c #EC7F00",
++"p% c #EB7E00",
++"q% c #D37000",
++"r% c #934A00",
++"s% c #6B3500",
++"t% c #C96800",
++"u% c #E67700",
++"v% c #E57600",
++"w% c #DA7000",
++"x% c #844200",
++"y% c #643000",
++"z% c #6F3500",
++"A% c #894200",
++"B% c #D57100",
++"C% c #E57B00",
++"D% c #D47000",
++"E% c #C06500",
++"F% c #994F00",
++"G% c #6B3600",
++"H% c #A25500",
++"I% c #AA5A00",
++"J% c #A95900",
++"K% c #A65700",
++"L% c #8D4500",
++"M% c #854100",
++"N% c #A65500",
++"O% c #C36700",
++"P% c #CF6E00",
++"Q% c #AF5900",
++"R% c #924B00",
++"S% c #653300",
++"T% c #5F3000",
++"U% c #AD5400",
++"V% c #7A3E00",
++"W% c #743D00",
++"X% c #783F00",
++"Y% c #7D4200",
++"Z% c #844300",
++"`% c #5C2D00",
++" & c #693500",
++".& c #A35300",
++"+& c #5A2D00",
++"@& c #9B4A00",
++"#& c #A14D00",
++"$& c #7B3E00",
++"%& c #8D4900",
++"&& c #964D00",
++"*& c #592A00",
++"=& c #7C3D00",
++"-& c #864300",
++";& c #683500",
++">& c #673400",
++",& c #632F00",
++"'& c #552D00",
++")& c #763C00",
++"!& c #AA5300",
++"~& c #B45C00",
++"{& c #B95F00",
++"]& c #AF5700",
++"^& c #A95300",
++"/& c #723800",
++"(& c #542900",
++"_& c #5A2F00",
++":& c #623300",
++"<& c #6B3700",
++"[& c #582E00",
++"}& c #633300",
++"|& c #753C00",
++"1& c #8F4900",
++"2& c #CF6800",
++"3& c #E47700",
++"4& c #ED7C00",
++"5& c #DF7200",
++"6& c #D36900",
++"7& c #BF5F00",
++"8& c #A75100",
++"9& c #904600",
++"0& c #663100",
++"a& c #603100",
++"b& c #5D2F00",
++"c& c #643300",
++"d& c #6F3800",
++"e& c #D56E00",
++"f& c #E77800",
++"g& c #F07A00",
++"h& c #E67800",
++"i& c #DC7000",
++"j& c #DA6E00",
++"k& c #D36800",
++"l& c #C66200",
++"m& c #A85300",
++"n& c #7E3D00",
++"o& c #8A4200",
++"p& c #CD6A00",
++"q& c #E17700",
++"r& c #D97300",
++"s& c #C36200",
++"t& c #C26400",
++"u& c #D36D00",
++"v& c #E77700",
++"w& c #E07300",
++"x& c #C16100",
++"y& c #A04D00",
++"z& c #934500",
++"A& c #A24E00",
++"B& c #BA5D00",
++"C& c #E37600",
++"D& c #EF7C00",
++"E& c #D56D00",
++"F& c #8E4300",
++"G& c #8D4200",
++"H& c #9B4C00",
++"I& c #C46400",
++"J& c #E37500",
++"K& c #EC7B00",
++"L& c #D16A00",
++"M& c #AF5400",
++"N& c #A14C00",
++"O& c #C06000",
++"P& c #E57500",
++"Q& c #F68100",
++"R& c #E87800",
++"S& c #F68000",
++"T& c #DB7000",
++"U& c #B75A00",
++"V& c #B55F00",
++"W& c #D87300",
++"X& c #F58400",
++"Y& c #F37E00",
++"Z& c #AE5700",
++"`& c #904A00",
++" * c #FD8F00",
++".* c #EF8D00",
++"+* c #F08E00",
++"@* c #F88800",
++"#* c #884300",
++"$* c #6C3500",
++"%* c #F47C00",
++"&* c #FF9000",
++"** c #FF8D00",
++"=* c #F37D00",
++"-* c #C26500",
++";* c #542700",
++">* c #833E00",
++",* c #F88D00",
++"'* c #F58800",
++")* c #4C2200",
++"!* c #CE6900",
++"~* c #D06700",
++"{* c #BC5E00",
++"]* c #B15A00",
++"^* c #AB5500",
++"/* c #AB5900",
++"(* c #9C4A00",
++"_* c #A34F00",
++":* c #A34D00",
++"<* c #8A4300",
++"[* c #532800",
++" ",
++" . + @ + ",
++" # $ % & * = - ; > , ' ) ! ~ { ] ^ / ( _ : ",
++" < [ } | 1 2 3 4 5 6 7 8 9 0 5 a b c d e f g ",
++" h i j k l m n o p q r s t u v w x y z A B C D E ",
++" F G H I J K L M N O P Q R S T U V W X Y Z ` ...+.@.#. ",
++" $.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3. ",
++" 4.5.6.6.7.8.9.0.a.b.c.d.e. f.g.h.i.j.k.l.m.n.4.G o.p. ",
++" q.r.r.2.s.t.u.v.w.x.y.z.A.B. C.f D.E.F.G.H.I.J.K.4.L.M. ",
++" N.O.P.Q.r.R.S.T.U.V.W.X.Y.Z. `. +.+++@+#+$+%+&+*+=+-+;+>+M. ",
++" >+,+,+;+'+o.)+!+~+{+]+^+&./+(+_+:+<+[+}+!+|+1+2+3+4+5+6+7+8+5.9+o.=+0+a+b+ ",
++" c+d+e+f+O.'+g+h+i+j+} k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+C.B+C+D+L.Y.Z.Z.E+F+ ",
++" G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+-+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@J+)@j+ ",
++" !@~@{@]@2.^@/@(@_@:@<@[@}@|@1@2@3@4@.@5@6@7@8@9@0@Q.a@1@I.b@c@d@e@5@f@D+g@,+e+8+h@i@j@ ",
++" k@l@K+m@n@o@|+p@q@r@s@t@u@p.v@w@x@y@p@z@A@B@C@D@(@E@F@G@H@I@J@K@L@w+M@N@ @O@P@Q@R@{@S@ ",
++"T@U@V@W@X@Y@Z@`@ #.#+#@###$#%#&#*#=#-#;#>#,# '#)#]@!#~#{#+@]#^#/#(#_#:#<#J@.@D+[#}#|#1#",
++"~@1#2#3#$.o@4#5#6#7#8#9#G P.0#a#b#c#Z.d#>@e# f#g#h#C+,+f#i#s.%.j#k#v+l#m#n#o#m@h#a@p#1@",
++"q#{@r#s#t#=+u#v#w#:#k#N.x#x#y#z#;#E+A#B#)@C# D#E#F#B#G#%.O.H#I#`.J###K#L#M#]#n+N#v@O#P#Q#",
++"J+R#S#g T#t#h+U#V#W#X# Y#7+Z#I+ +`# $3#|#.$+$ @$#$##$$%$2.&$*$|#=$3@",
++"_+g+=#-$;$>$G#f+,$'$q. )$!$~${$]$^$]$/$($_$:$ <$[$s.$.6.}$|$1$2$y@",
++"3$f#4$5$6$7$8$9$0$a$ b$8+@.c$d$e$9@f$o.g$f h$i$j$k$l$g+",
++"g#Y.m$8#c@n$o$p$ q$G r$d$7#s$t$_@u$z#3# v$w$N@D+f+",
++"x@x$4$f$y$z$p#A$ B$C$m@D$(#E$f@F$G$H$I$ J$K$L$O.M$",
++"N$~#O$P$=#Q$ R$S$6.T$U$V$Q$W$A#X$Y$ Z$`$ %.%+%",
++"m@@%#%$%%%&% N.Y.*%=%V@u.-%;%.%>%3$ ,%'%)%$.!%",
++"~%N@{%]%^%/%(% 0$0$R@G#_%:%<%[%J#}%|% 1%2%r#Z.U#3%",
++"4%5%6%{#7%8%2@9% !@0%a%b%c%d%e%f%g%h%i% j%k%8%0$R#l%m%n%",
++"o%p%q%l$r%9$^%&+ T+s%!#t%u%v%w%f%x%9%T@ y%z%A%4.o@B%C%",
++"D%B%E%F%j+Y#G% I#*%!#H%I%J%K%C+L%M%0$ s%Q#[#N%O%P%",
++"Q%<$R%h@S%T% U%;#-#V%W%X%Y%Z%G#'+A# `% &F#.&4$",
++"x%($Q#7++& @&#&Z.}%$&;%%&&&E+h H# *&&%=&-&",
++";&>&S%,& '&)&K+A#!&%$~&{&r$]&^&g#I#/&(& 9%u.2%",
++"_&:&<& [&}&|&1&G$2&3&4&r@5&6&7&8&9&b$0& a&b&",
++"c&7+ d&)&7%X#r$e&f&g&h&i&j&k&l&m&n&b$ G+",
++" o&3.3$p&q&r&N+s&t&|+u&v&w&x&y&z& ",
++" d+A&B&C&D&E&_+F&G&H&I&J&K&L&M&N& ",
++" G a+O&P&Q&R& U#4&S&T&U&'+ ",
++" x$<%V&W&X&Y& r@s@v#Z&2. ",
++" =$`&.&:# *.* +*@*Z@Y.#* ",
++" ~@$*!#}@%*&* **=*-*W$&+j% ",
++" ;*>*|+h&,* '*w+Q%b$)* ",
++" )@a#!*L& ~*{*p.U+ ",
++" h+]*^* U%e#,+ ",
++" /*E@(* a+y@y@ ",
++" i#'+_* L.8&:* ",
++" J+N$J+ r.,$<* ",
++" G+ [* ",
++" "};
diff --git a/games/xgalaga++/slack-desc b/games/xgalaga++/slack-desc
new file mode 100644
index 0000000000000..5c8ffe2ad2321
--- /dev/null
+++ b/games/xgalaga++/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|' on
+# the right side marks the last column you can put a character in. You must make
+# exactly 11 lines for the formatting to be correct. It's also customary to
+# leave one space after the ':'.
+
+ |-----handy-ruler-------------------------------------------------------|
+xgalaga++: xgalaga++ (X version of the classic game Galaga)
+xgalaga++:
+xgalaga++: XGalaga++ is a classic vertical scrolling shoot'em up. It requires no
+xgalaga++: X Window extension and its window is freely resizable. It is inspired
+xgalaga++: by XGalaga, but rewritten from scratch, except for the graphics.
+xgalaga++:
+xgalaga++: Homepage: http://marc.mongenet.ch/OSS/XGalaga/
+xgalaga++:
+xgalaga++:
+xgalaga++:
+xgalaga++:
diff --git a/games/xgalaga++/xgalaga++.SlackBuild b/games/xgalaga++/xgalaga++.SlackBuild
new file mode 100644
index 0000000000000..464aee5809b22
--- /dev/null
+++ b/games/xgalaga++/xgalaga++.SlackBuild
@@ -0,0 +1,74 @@
+#!/bin/sh
+# Slackware build script for xgalaga++
+# Written by Larry Hajali <larryhaja[at]gmail[dot]com>
+
+PRGNAM=xgalaga++
+VERSION=${VERSION:-0.8}
+ARCH=${ARCH:-i486}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/${PRGNAM}_${VERSION}.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Apply some patches
+patch -p1 < $CWD/patches/Makefile.patch
+patch -p1 < $CWD/patches/misc_code_fixups.patch
+patch -p1 < $CWD/patches/fixup_includes.patch
+patch -p1 < $CWD/patches/xgalaga++.desktop.patch
+patch -p1 < $CWD/patches/xgalaga++.xpm.patch
+
+mv $PRGNAM.6x $PRGNAM.6
+
+make all CXXFLAGS="$SLKCFLAGS" OPTIMISE_OPTS="-fomit-frame-pointer"
+make install DESTDIR=${PKG}
+
+# Don't clobber an existing scorefile
+mv $PKG/var/games/xgalaga++/xgalaga++.scores \
+ $PKG/var/games/xgalaga++/xgalaga++.scores.new
+
+( cd $PKG
+ find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null || true
+ find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \
+ xargs strip --strip-unneeded 2> /dev/null
+)
+
+gzip -9 $PKG/usr/man/man?/*.?
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/COPYING > $PKG/usr/doc/$PRGNAM-$VERSION/COPYING
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/games/xgalaga++/xgalaga++.info b/games/xgalaga++/xgalaga++.info
new file mode 100644
index 0000000000000..158ec8a1499df
--- /dev/null
+++ b/games/xgalaga++/xgalaga++.info
@@ -0,0 +1,8 @@
+PRGNAM="xgalaga++"
+VERSION="0.8"
+HOMEPAGE="http://marc.mongenet.ch/OSS/XGalaga/"
+DOWNLOAD="http://marc.mongenet.ch/OSS/XGalaga/xgalaga++_0.8.tar.gz"
+MD5SUM="4db024cb23d4e7cb8d6c022a8e156995"
+MAINTAINER="Larry Hajali"
+EMAIL="larryhaja[at]gmail[dot]com"
+APPROVED="rworkman"