summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
Diffstat (limited to 'games')
-rw-r--r--games/uqm/README17
-rw-r--r--games/uqm/config.state.in14
-rw-r--r--games/uqm/icons/128.pngbin0 -> 27685 bytes
-rw-r--r--games/uqm/icons/16.pngbin0 -> 918 bytes
-rw-r--r--games/uqm/icons/32.pngbin0 -> 2883 bytes
-rw-r--r--games/uqm/icons/48.pngbin0 -> 5409 bytes
-rw-r--r--games/uqm/slack-desc8
-rw-r--r--games/uqm/uqm.1771
-rw-r--r--games/uqm/uqm.SlackBuild133
-rw-r--r--games/uqm/uqm.info6
-rw-r--r--games/uqm/uqm.xpm138
11 files changed, 132 insertions, 955 deletions
diff --git a/games/uqm/README b/games/uqm/README
index 82c266609f..491e8dc2ae 100644
--- a/games/uqm/README
+++ b/games/uqm/README
@@ -3,5 +3,18 @@ uqm (port of the 3DO/PC game - Star Control II)
The Ur-Quan Masters is a port of the 3DO version of the PC game "Star
Control II". It runs on modern operating systems and is 100% free.
-You may also want the optional uqm_voice and uqm_3domusic packages, for
-a more festive gaming experience.
+You may also want the optional uqm_voice, uqm_3domusic and/or
+uqm_remixes packages, for a more festive gaming experience.
+
+Optional dependencies:
+
+SDL2 - Recommended. Although uqm still supports SDL-1.2, the
+release packages for other OSes (Windows and Mac) are built using
+SDL2. Autodetected, can be disabled with SDL2=no [*] in the environment.
+
+OpenAL - Not recommended. OpenAL support in uqm is still experimental.
+Not autodetected: use OPENAL=yes in the environment, to enable.
+
+[*] In addition, for SDL-1.2 builds, OpenGL can be disabled by setting
+ OPENGL=no in the environment. If you don't know why you might do
+ this, you almost certainly don't need to!
diff --git a/games/uqm/config.state.in b/games/uqm/config.state.in
new file mode 100644
index 0000000000..f1775ca235
--- /dev/null
+++ b/games/uqm/config.state.in
@@ -0,0 +1,14 @@
+CHOICE_debug_VALUE='nodebug'
+CHOICE_graphics_VALUE='@GFX@'
+CHOICE_sound_VALUE='@SND@'
+CHOICE_mikmod_VALUE='internal'
+CHOICE_ovcodec_VALUE='standard'
+CHOICE_netplay_VALUE='full'
+CHOICE_joystick_VALUE='enabled'
+CHOICE_ioformat_VALUE='stdio_zip'
+CHOICE_accel_VALUE='asm'
+CHOICE_threadlib_VALUE='sdl'
+INPUT_install_prefix_VALUE='/usr'
+INPUT_install_bindir_VALUE='$prefix/bin'
+INPUT_install_libdir_VALUE='$prefix/libexec'
+INPUT_install_sharedir_VALUE='$prefix/share'
diff --git a/games/uqm/icons/128.png b/games/uqm/icons/128.png
new file mode 100644
index 0000000000..27553420d0
--- /dev/null
+++ b/games/uqm/icons/128.png
Binary files differ
diff --git a/games/uqm/icons/16.png b/games/uqm/icons/16.png
new file mode 100644
index 0000000000..7e4fa3d323
--- /dev/null
+++ b/games/uqm/icons/16.png
Binary files differ
diff --git a/games/uqm/icons/32.png b/games/uqm/icons/32.png
new file mode 100644
index 0000000000..441a81f67b
--- /dev/null
+++ b/games/uqm/icons/32.png
Binary files differ
diff --git a/games/uqm/icons/48.png b/games/uqm/icons/48.png
new file mode 100644
index 0000000000..4cd791e688
--- /dev/null
+++ b/games/uqm/icons/48.png
Binary files differ
diff --git a/games/uqm/slack-desc b/games/uqm/slack-desc
index 5a02526c97..b5cc6c9e55 100644
--- a/games/uqm/slack-desc
+++ b/games/uqm/slack-desc
@@ -10,10 +10,10 @@ uqm: uqm (port of the 3DO/PC game - Star Control II)
uqm:
uqm: The Ur-Quan Masters is a port of the 3DO version of the PC game "Star
uqm: Control II". It runs on modern operating systems and is 100% free.
-uqm:
uqm: This package contains the game executable and documentation, as
-uqm: well as the game content (graphics, sound, etc). You may also
-uqm: want the optional uqm_voice and uqm_3domusic packages, for a more
-uqm: festive gaming experience.
+uqm: well as the game content (graphics, sound, etc).
uqm:
uqm: This package includes game content version @CONTVER@.
+uqm:
+uqm: Build options: Graphics=@RENDER@, Audio=@AUDIO@
+uqm:
diff --git a/games/uqm/uqm.1 b/games/uqm/uqm.1
deleted file mode 100644
index 98412c254a..0000000000
--- a/games/uqm/uqm.1
+++ /dev/null
@@ -1,771 +0,0 @@
-.TH "UQM" "1" "The Ur\-Quan Masters" "http://sc2.sourceforge.net"
-
-.SH NAME
-\fBuqm\fR - \fIThe Ur\-Quan Masters\fR, a modern, free port of the
-classic PC game \fIStar Control II\fR (aka \fIstarcon2\fR).
-.SH SYNOPSIS
-\fBuqm\fR \fI[options]\fR
-.SH DESCRIPTION
-Welcome to the sixth release of the Ur\-Quan Masters port. This
-document will tell you everything you need to play, even if you've
-never played the original.
-
-For those of you who have played the original, read the first section
-(starting the game and bug reports) and the last sections (Super Melee
-and control summary), and you'll be good to go.
-
-.SH "STARTING THE GAME"
-
-Simply invoke the \fBuqm\fR executable.
-This will use the default settings. The defaults and how to
-change them are listed under \fBCOMMAND LINE OPTIONS\fR, below.
-
-After a splash screen, you will see the main menu, which has five
-options:
-
-.IP "\fINew Game\fR"
-Begins a new Full Game. This is a galaxy\-spanning space
-adventure full of diplomacy, exploration, combat, high treason,
-and low cunning. The introductory cutscenes will set the scene;
-the \fBTHE STORY SO FAR\fR section below provides more extensive
-backstory for the curious.
-
-.IP "\fILoad Game\fR"
-Restores a Full Game session that was saved earlier.
-
-.IP "\fISuper Melee!\fR"
-Puts the game in Super Melee mode, where you may
-hone your space combat skills or challenge your friends to fleet
-battles. See the \fBSUPER MELEE\fR section below for details on this
-section.
-
-.IP "\fISetup\fR"
-Lets you configure many options to customize your play
-experience. Most options will take effect once you exit the setup
-menu; a few specially marked options require you to restart UQM.
-Setup options are preserved across sessions. The options are
-described under \fBCOMMAND LINE OPTIONS\fR, below.
-
-.IP "\fIQuit\fR"
-Exits the program.
-
-.SH "COMMAND LINE OPTIONS"
-
-The default options for an UQM install are 3DO music, 640x480 windowed
-mode, and pure SDL graphics drivers. You may pass various command line
-options to customize your experience. Most of these options are
-also accessible from the in\-game \fBSetup\fR menu.
-.PP
-\fINote:\fR Options set on the command line do not get saved permanently
-in the config directory. To permanently change a setting, it must be
-changed via the in\-game \fBSetup\fR menu.
-
-.IP "\fB\-r\fB \fIresolution\fR, \fB\-\-res\fB \fIresolution\fR"
-Sets the screen resolution (default \fI640x480\fR). Unless OpenGL is
-supported, the only valid values are \fI640x480\fR and \fI320x240\fR;
-setting any other value will automatically enable \fB\-\-opengl\fR if
-compiled in (otherwise, the \fB\-r\fR option will be ignored).
-.PP
-\fINote:\fR The in\-game \fBSetup\fR menu normally only allows
-\fI320x240\fR, \fI640x480\fR, \fI800x600\fR, and \fI1024x768\fR. To
-permanently set some other resolution in the config file, set it with
-the \fB\-o\fR and \fB\-r\fR options, then enter and immediately exit
-the \fBSetup\fR menu. From then on, starting \fBuqm\fR with no parameters
-will enable OpenGL and set the resolution to your custom value.
-
-.IP "\fB\-f\fR, \fB\-\-fullscreen\fR"
-Uses full screen mode. Pretty straightforward. Usually good to
-combine with \fB\-r\fR \fI320x240\fR unless you're using a scaler.
-
-.IP "\fB\-o\fR, \fB\-\-opengl\fR"
-Use OpenGL drivers. This produces higher\-quality graphics, and may be
-faster as well \-\- but it also may not work on older cards. It also
-permits use of any screen resolution.
-
-.IP "\fB\-c\fR \fImode\fR, \fB\-\-scale\fR \fImode\fR"
-Graphics scaling mode (\fIbilinear\fR, \fIbiadapt\fR, \fIbiadv\fR,
-\fItriscan\fR, \fIhq or \fInone\fR).
-Default is \fInone\fR. Try these to get smoother graphics with cost on
-performance.
-
-.IP "\fB\-b\fR \fImode\fR, \fB\-\-meleezoom\fR \fImode\fR"
-Melee zooming mode (\fIpc\fR or \fI3do\fR); \fIstep\fR is an alias for \fIpc\fR and \fIsmooth\fR
-is an alias for \fI3do\fR. Default is \fI3do\fR. Slower machine owners can set it
-to \fIpc\fR to get better performance in melee.
-
-.IP "\fB\-s\fR, \fB\-\-scanlines\fR"
-Simulates interlaced displays (by drawing every other line with darker colors).
-
-.IP "\fB\-g\fR \fIvalue\fR, \fB\-\-gamma\fR \fIvalue\fR"
-Sets gamma correction (default: \fI1.0\fR).
-1.0 causes no change (unless your graphics card
-is originally set to a different value). Higher than 1.0 makes the
-image brighter, lower than 1.0 makes it darker.
-
-.IP "\fB\-p\fR, \fB\-\-fps\fR"
-Print fps (frames per second) information in the status window.
-
-.IP "\fB\-C\fR \fIdir\fR, \fB\-\-configdir\fR \fIdir\fR"
-Set the directory where the game will store the config data.
-Default: \fI~/.uqm\fR
-
-.IP "\fB\-n\fR \fIdir\fR, \fB\-\-contentdir\fR \fIdir\fR"
-Set the directory where the game will seek its data. Default:
-\fI/usr/share/uqm/content\fR
-
-.IP "\fB\-l\fR \fIfile\fR, \fB\-\-logfile\fR \fIfile\fR"
-Set a file to receive the diagnostic information that would otherwise go
-to the console.
-
-.IP "\fB\-h\fR, \fB\-\-help\fR"
-Display a help message.
-
-.IP "\fB\-M\fR \fIlevel\fR, \fB\-\-musicvol\fR \fIlevel\fR"
-Set music volume (0\-100).
-
-.IP "\fB\-S\fR \fIlevel\fR, \fB\-\-sfxvol\fR \fIlevel\fR"
-Set sound effects volume (0\-100).
-
-.IP "\fB\-T\fR \fIlevel\fR, \fB\-\-speechvol\fR \fIlevel\fR"
-Set speech volume (0\-100). If set to 0, the game runs in 'no speech'
-mode and the oscilloscope reacts to the music.
-
-.IP "\fB\-m\fR \fItype\fR, \fB\-\-music\fR \fItype\fR"
-Set the soundtrack type (default: \fI3do\fR). Valid values for \fItype\fR are
-\fI3do\fR (use the 3DO remixed soundtrack for songs that were in fact remixed),
-and \fIpc\fR (use the .MOD based PC soundtrack everywhere).
-
-.IP "\fB\-q\fR \fIquality\fR, \fB\-\-audioquality\fR \fIquality\fR"
-Can be \fIhigh\fR, \fImedium\fR, or \fIlow\fR. Specifies how nice the audio
-sounds. Slower machines should lower the audio quality.
-
-.IP "\fB\-\-addon\fR \fIname\fR"
-Replace \fIname\fR with the name of an add\-on to enable in the game. See
-the section \fBADD\-ONS\fB below for details.
-
-.IP "\fB\-\-sound\fR \fImixer\fR"
-Can be \fIopenal\fR, \fImixsdl\fR or \fInone\fR. Specifies which driver/mixer
-to use. \fIopenal\fR is only available when it has been compiled in.
-It may produce higher\-quality sound and will probably be faster,
-but it is not very stable on linux platforms, and may not work
-well with some sound cards.
-Use \fInone\fR as a last resort if you cannot get other drivers to work,
-or if you have no soundcard.
-
-.IP "\fB\-\-stereosfx\fR"
-Enables positional sound effects in melee. Currently works only when
-using \fB\-\-sound openal\fR.
-
-.IP "\fB\-n\fR, \fB\-\-nosubtitles\fR"
-Disables subtitles.
-
-.IP "\fB\-\-cscan\fR \fIpc\fR"
-Use PC style planet information when scanning (text). Default.
-
-.IP "\fB\-\-cscan\fR \fI3do\fR"
-Use 3DO style planet information when scanning (pictograms).
-
-.IP "\fB\-\-menu\fR \fIpc\fR"
-Use PC style menus (text) and 'CREW'/'BATT' in melee instead of icons.
-Default.
-
-.IP "\fB\-\-menu\fR \fI3do\fR"
-Use 3DO style menus (pictograms).
-
-.IP "\fB\-\-font\fR \fIpc\fR"
-Use PC style fonts and colors.
-Default.
-
-.IP "\fB\-\-font\fR \fI3do\fR"
-Use 3DO style fonts and colors.
-
-.IP "\fB\-\-scroll\fR \fIpc\fR"
-Scroll voice\-over/subtitles 1 page at a time when using left/right arrow keys
-Default.
-
-.IP "\fB\-\-scroll\fR \fI3do\fR"
-Scroll voice\-over/subtitles smoothly while holding down left/right arrow keys
-
-.IP "\fB\-i\fR \fI3do\fR, \fB\-\-intro\fR \fI3do\fR"
-Use the 3DO intro and ending movies (if you have them).
-The default.
-
-.IP "\fB\-i\fR \fIpc\fR, \fB\-\-intro\fR \fIpc\fR"
-Use the PC intro and ending sequences and slide shows. These will be also
-played if you do not have 3DO movies, regardless of \fB\-i\fR option.
-
-.IP "\fB\-\-shield\fR \fIpc\fR"
-Use PC style static slave shield graphic.
-Default.
-
-.IP "\fB\-\-shield\fR \fI3do\fR"
-Use 3DO style throbbing slave shield graphic. This somewhat increases the
-load on CPU while in orbit. Do not use if your CPU cannot handle that.
-
-
-.SH "NOT OFFICIALLY SUPPORTED OPTIONS"
-
-The following options may not exist in all builds and can change without
-notice at any time.
-
-.IP "\fB\-\-accel\fR \fItype\fR"
-Can be \fInone\fB, \fIdetect\fB, \fImmx\fB, \fI3dnow\fB, \fIsse\fB
-(also \fIaltivec\fB if/when
-added; or other platforms). Specifies which platform accelerations
-to use for graphics and sound, if any. All specific platform code can
-only be used when compiled in.
-
-.IP "\fB\-\-netport1\fR \fIport\fR"
-.IP "\fB\-\-netport2\fR \fIport\fR"
-Specifies the default port that the bottom or top player respectively
-will connect to or accept incoming connections on. If this parameter
-is not specified, \fI21837\fR will be used. This value can be changed later
-in the SuperMelee Net menu. Your firewall needs to be set up to allow
-TCP connections from/to the used port.
-
-.IP "\fB\-\-nethost1\fR \fIhost\fR"
-.IP "\fB\-\-nethost2\fR \fIhost\fR"
-Specifies the default name or ip number of the host to connect to for
-the bottom or player. If this parameter is not specified, UQM will
-not attempt an outgoing connection, but instead listen for an incoming
-connection.
-
-.IP "\fB\-\-netdelay\fR \fIframes\fR"
-Set the default input delay (in frames). See the \fBSUPER MELEE\fR section
-for details.
-
-.SH "THE STORY SO FAR"
-For the past decade, Earth and the rest of the Alliance of Free Stars
-has fought the Ur\-Quan and their Hierarchy of Battle Thralls. In the
-course of the War, the Earthlings discovered a factory world of the
-\fBPrecursors\fR \- an impossibly advanced that disappeared tens of
-thousands of years ago. This colony, Unzervalt (aka Vela I), lost all
-contact with Earth shortly after landfall.
-
-You are Captain Zelnick, a human that was born on Unzervalt and who
-possesses a remarkable knack for Precursor technology. You were the
-one who worked out how to activate the Precursor installation.
-
-It was a factory for building starships. However, Unzervalt is
-mineral\-poor, and there were not enough materials available to
-construct a complete vessel. Your task is to command this craft, the
-Vindicator, and return to Earth to tell them of the abandoned colony.
-Also, if the War with the Ur\-Quan continues, you must fight for Earth
-and the Alliance as best you can.
-
-There is a great deal more to this story. Asking Starbase Commander
-Hayes for background information will give you most of it.
-
-.SH "INTERPLANETARY EXPLORATION"
-
-When in a Solar system, use the thrust and steering controls to move
-about the system. Intersecting a planet will move you to the
-planetary system; flying over a planet or moon will then put you into
-orbit. From there you can talk to the inhabitants, or, if the planet
-is uninhabited, send a lander down to gather minerals, investigate
-energy readings, or capture life forms.
-
-.SH "PLANET LANDING"
-
-To land on a planet, you need to achieve orbit, then fill a planet
-lander with crew and send them down. You will usually want to scan
-the planet first. Mineral scans will indicate easily harvestable
-mineral ores and other resources. Energy scans will indicate unusual
-installations, which will effectively always be worth investigating.
-Biological scans will show where life forms are on the surface.
-
-Minerals are necessary for building up and maintaining your flagship,
-so harvest them wherever you can. There are nine varieties, each
-color coded:
-
-\fBCOMMON ELEMENTS\fR (\fIcarbon\fR, \fInitrogen\fR) are cyan. Worth 1 resource unit
-(RU) per unit.
-
-\fBCORROSIVES\fR (\fIchlorine\fR, \fIiodine\fR) are red. 2 RU per unit.
-
-\fBBASE METALS\fR (\fIiron\fR, \fItin\fR) are grey. These are common, and usually worth
-harvesting, but not terribly valuable. 3 RU per unit.
-
-\fBNOBLE GASSES\fR (\fIargon\fR, \fIxenon\fR) are blue. 4 RU per unit.
-
-\fBRARE EARTHS\fR (\fIlanthanum\fR, \fIytterbium\fR) are green. 5 RU per unit.
-
-\fBPRECIOUS ELEMENTS\fR (\fIgold\fR, \fIsilver\fR) are yellow. 6 RU per unit.
-
-\fBRADIOACTIVES\fR (\fIuranium\fR, \fIastatine\fR) are orange. 8 RU per unit.
-
-\fBEXOTICS\fR (\fIantimatter\fR, \fImagnetic monopoles\fR) are purple, and a princely 25
-RU per cargo unit.
-
-Minerals may be unloaded at Earth Starbase by talking to Commander
-Hayes, which will give you RU that you may spend to upgrade your
-flagship.
-
-However, there are many hazards on planetary surfaces. Life forms are
-often hostile, and need to be subdued with your stunner or evaded.
-Earthquakes (expanding circles) can hurt your crew, lightning may
-crisp them, or lava flows and hotspots can fry them. Be careful,
-especially on hotter or more seismically and atmospherically active
-worlds. If your crew level starts dropping dramatically, flee quickly
-with the ESCAPE key!
-
-Stunned life forms may be captured and analyzed by your planet
-landers. The information you gain from this may not be immediately
-useful, but it will eventually come in handy.
-
-Landing on a planet costs fuel, and the heavier the planet, the more
-fuel it requires. Make sure you don't spend so much fuel exploring
-planets that you can't get back to Sol!
-
-.SH "INTERSTELLAR TRAVEL"
-
-When you leave a solar system, you will push up into HyperSpace. In
-HyperSpace you can travel great distances quickly, but you must
-continuously thrust to move. Otherwise, you will gradually slow to a
-stop.
-
-While you can fly about in HyperSpace just like you do in a star
-system, the Galaxy is LARGE, and you will usually want to use the
-Auto\-Pilot. To use the Auto\-Pilot, select "Starmap" on the menu.
-This will show you a map of the quadrant (the galactic Core is in the
-upper right corner). To fly to a location, move the cursor there and
-press Enter. Then press Space to engage the Auto\-Pilot.
-
-.SH DIPLOMACY
-
-When you encounter an alien starship, you will usually get a picture
-of their task force and a chance to choose between conversation and
-fighting. If you choose to fight, you will transition immediately to
-space combat (below). Otherwise, you will talk first. If talks go
-poorly, space combat will likely ensue.
-
-If the task force shows ships streaming off in all directions, you
-have reached a fortified world, and there are an unlimited number of
-starships facing you. You cannot win such a fight \- if combat ensues,
-you will need to warp out.
-
-.SH "SPACE COMBAT"
-
-When combat begins, you are prompted to select a ship from your task
-force. A one\-on\-one space combat then begins, and continues until
-either the enemy fleet is destroyed (in which case you salvage the
-wrecks and continue the game), your flagship is destroyed (ending the
-game), or your flagship warps out of combat (consuming 5 fuel units
-but ending the encounter).
-
-Each ship has two major stats: Crew and Combat Battery. Crew are
-effectively hit points. Getting hit by weapons kills crew, and if all
-crew are eliminated, the craft is destroyed. Firing weapons typically
-requires energy from the combat batteries, which is replaced over
-time. The precise speed of energy regeneration and cost of weapons
-fire varies by ship.
-
-Space flight is \fImostly\fR inertial (you'll drift if you stop
-thrusting), but each ship has a maximum velocity that can only be
-exceeding by "gravity whipping" around the planet. Don't hit the
-planet unless you want to take LOTS of damage.
-
-Each ship has a primary and secondary weapon mode, unique to that
-race's craft. The descriptions of those follow.
-
-.SH "SHIP DESCRIPTIONS"
-
-.IP "Androsynth Guardian"
-Primary weapon: Fires homing acid bubble clouds.
-.br
-Secondary weapon: Transforms into the 'Blazer', a comet that does
-considerable damage by ramming its opponents.
-
-.IP "Ariloulaleelay Skiff"
-Primary weapon: Auto\-aiming, short\-range laser
-.br
-Secondary weapon: Random teleport
-.br
-Note: The Skiff is inertia\-less, and stops instantly when thrust is
-removed.
-
-.IP "Chenjesu Broodhome"
-Primary weapon: Crystal Shard. Will travel until the fire button is
-released, then shatters.
-.br
-Secondary weapon: De\-energizing Offensive Guided Interceptor.
-Launches an autonomous DOGI that rams the opponent to drain their
-combat batteries.
-
-.IP "Chmmr Avatar"
-Primary weapon: Immensely powerful short\-range laser
-.br
-Secondary weapon: Tractor beam.
-.br
-Note: Has three orbiting "ZapSats" that attack anything that gets in
-range.
-
-.IP "Druuge Mauler"
-Primary weapon: Long range, high\-recoil cannon
-.br
-Secondary weapon: Sets one crew on fire to gain combat energy.
-
-.IP "Earthling Cruiser"
-Primary weapon: Homing nuclear missile
-.br
-Secondary weapon: Point\-defense laser
-
-.IP "Ilwrath Avenger"
-Primary weapon: Short\-range flamethrower
-.br
-Secondary weapon: Cloaking device
-
-.IP "Kohr\-Ah Marauder "
-Primary weapon: Spinning blades that stop and home when the fire
-button is released
-.br
-Secondary weapon: Fiery Ring of Inevitable and Eternal Destruction
-(F.R.I.E.D.), a short\-range corona of energy that blocks shots and
-inflicts lots of damage
-
-.IP "Melnorme Trader"
-Primary weapon: Charged shot. The longer the fire button is held, the
-stronger the shot.
-.br
-Secondary weapon: Confusion beam that scrambles enemy controls.
-
-.IP "Mmrnmhrm X\-Form"
-Primary weapon: Lasers (X\-form) or homing missiles (Y\-form).
-.br
-Secondary weapon: Switch between X\-Form and Y\-Form.
-
-.IP "Mycon Podship"
-Primary weapon: Homing Plasmoid.
-.br
-Secondary weapon: Regenerate 4 crew.
-
-.IP "Orz Nemesis"
-Primary weapon: Howitzer cannon.
-.br
-Secondary weapon: Secondary with left and right arrows rotates the
-primary cannon. Secondary with Primary launches space marines that
-invade the enemy ship and kill their crew.
-
-.IP "Pkunk Fury"
-Primary weapon: Three\-way cannon
-.br
-Secondary weapon: Fling insults at opponent. This is the only way the
-Pkunk can regenerate combat energy.
-.br
-Note: On occasion, a destroyed Fury will be resurrected with full fuel
-and power.
-
-.IP "Shofixti Scout"
-Primary weapon: Energy Dart.
-.br
-Secondary weapon: Glory Device. When pressed three times, the ship
-will self\-destruct, inflicting vast damage on nearby vessels.
-
-.IP "Slylandro Probe"
-Primary weapon: Lighting weapon.
-.br
-Secondary weapon: Absorb a nearby asteroid and convert to combat
-power. This is the only way the Probe can recharge.
-.br
-Note: The Probe is inertia\-less and always in motion. Pressing thrust
-will reverse its direction.
-
-.IP "Spathi Eluder"
-Primary weapon: Simple forward cannon.
-.br
-Secondary weapon: Backward Utilized Tracking Torpedo (B.U.T.T.), a
-homing missile fired from the rear of the vessel.
-
-.IP "Supox Blade"
-Primary weapon: Forward firing glob weapon
-.br
-Secondary weapon: Secondary + left or right will cause you to drift
-laterally, while Secondary + thrust will make you fly backwards. This
-cancels your current velocity, so be careful!
-
-.IP "Syreen Penetrator"
-Primary weapon: Particle Beam Stiletto.
-.br
-Secondary weapon: "Syreen Call" \- psychic attack that induces enemy
-crew to jump ship, where you (or your opponent) may capture them to
-add to your complement
-
-.IP "Thraddash Torch"
-Primary weapon: Straightforward blaster cannon.
-.br
-Secondary weapon: Afterburner. The afterburner exhaust does more
-damage then the blaster, so use it as a weapon!
-
-.IP "Umgah Drone"
-Primary weapon: Anti\-Matter cone. Does not require combat batteries to use.
-.br
-Secondary weapon: Fly backwards suddenly and at high speed.
-.br
-Note: The Drone only recharges batteries if you do not fire for a long
-time, and then the energy all returns in one lump.
-
-.IP "Ur\-Quan Dreadnought"
-Primary weapon: Fusion Blast.
-.br
-Secondary weapon: Launches autonomous fighters to harrass the enemy.
-When they run low on fuel, they will fly back to the Dreadnought.
-Catch them before they expire. Each fighter requires one crew to
-pilot it, so take care not to weaken the core ship.
-
-.IP "Utwig Jugger"
-Primary weapon: Six\-shot cannon. Requires no combat battery energy to fire.
-.br
-Secondary weapon: Force shield. Absorbing hits re\-energizes your
-batteries. When the batteries are exhausted, the shield is
-permanently disabled until combat ends.
-
-.IP "VUX Intruder"
-Primary weapon: Gigawatt laser.
-.br
-Secondary weapon: Limpet mines that track enemy ships and slow them
-down dramatically if they hit.
-
-.IP "Yehat Terminator"
-Primary weapon: Twin autocannons.
-.br
-Secondary weapon: Force shield.
-
-.IP "Zoq\-Fot\-Pik Stinger"
-Primary weapon: Anti\-matter spray gun.
-.br
-Secondary weapon: "Tongue attack", a point\-blank range attack that
-does grievous damage.
-
-.SH "SUPER MELEE"
-
-Super Melee mode is pure combat. It's designed to let you hone your
-skills for the full game, or to challenge your friends to fleet
-matches. Selecting "Super Melee!" from the main menu will bring you
-to the super melee main screen.
-
-This screen is dominated by the fleet design screen. Move the cursor
-over a ship slot and press ENTER to change the ship assignment, or
-press DELETE to remove the ship. You may select the fleet name and
-press ENTER to edit the fleet name to something of your choice. The
-number next to the fleet name lists the fleet strength; this is simply
-the sum of the point values of all ships in the fleet.
-
-The right hand side of the screen has buttons for managing the battle.
-Each side has four buttons associated with it: LOAD, SAVE, CONTROL,
-and NET. The LOAD and SAVE buttons let you load and save fleets. A
-variety of fleets of various strengths are pre\-defined, and you may
-add your own by saving fleets you design.
-
-The CONTROL button has one of five settings. HUMAN CONTROL puts the
-fleet under the control of a human player. (The precise controls for
-that player are set in the Setup menu, but the bottom player's
-controls are always the same as the full game's controls.) Then there
-are three levels of computer control:
-
-\fBWEAK CYBORG\fR is not a particularly good shot, and will only use
-special weapons if the ship absolutely requires the special weapon
-to function at all (Pkunk, Slylandro). This difficulty level only
-appears in the full game when fighting crippled ships.
-
-\fBGOOD CYBORG\fR will actually use its special weapon, but it's still
-not much of a threat. The Good cyborg provides a gentle
-introduction to Star Control combat if you are unfamiliar with the
-gameplay. However, you will soon wish to switch to...
-
-\fBAWESOME CYBORG\fR. The AI will fully exploit each ship's abilities,
-and is also a tolerably good shot, compensating for inertia and
-choosing its shots. Enemies you meet in the full game are almost
-always piloted at this level. If a battle is giving you trouble
-in the full game, this is the setting you want.
-
-The last control option is \fBNETWORK CONTROL\fR, which will be set if that
-side is controlled by a non\-local opponent. To set up a network game,
-push the NET button on the side you wish to be under your opponent's
-control.
-
-In order to connect, you must agree on a port (the default is \fB21837\fR,
-which should not require any change) and set a net delay in frames.
-To compensate for network lag, a keypress or keyrelease will only take
-effect after this many frames. While higher values make your ship
-seem to respond more sluggishly, they give the keypress information
-more time to reach the remote party. If the game stutters, this is
-because it is waiting for this keypress information to arrive, which
-is an indication that the input delay is too low. Super Melee runs at
-24 frames per second, each frame delayed will delay the input by about
-42ms. The delay used is the maximum of the desired value for both
-parties. The default is 2. Values lower than 4 are typically
-acceptable in terms of responsiveness. Future versions may
-automatically decide on the best value to use.
-
-Once the port and delay are set, one player must select the first
-option (Wait for incoming connection), while the other enters his
-opponent's hostname or IP address into the Host field and then pushes
-"Connect." Once the connection is established, the control scheme for
-the remote player will flip to NETWORK CONTROL to register the
-connection. To disconnect, change it away back to one of the HUMAN or
-CYBORG options. Once connected, you are both free to edit your fleets
-to provide a properly balanced battle.
-
-Once all fleets are in readiness, press the BATTLE button in the
-center right. (In a network game, both players must select it with no
-intervening fleet edits. Moving away from BATTLE or having your
-opponent change their fleet will cancel your readiness state, and you
-will need to reselect the BATTLE button.) When all players are ready,
-the battle begins.
-
-The ship selection screen is much as it would be in the full game,
-with two notable exceptions: a question mark in the upper right allows
-you to select a new ship randomly from those remaining, and a red X
-allows you to exit the combat entirely. (It is also possible to exit
-the melee at any time by pressing F10, just as one can exit anything.)
-If nobody quits, the combat will continue until one side has been
-completely destroyed. At this point, both fleets are shown so that
-one may compare initial and remaining fleet strengths. Press a key to
-return to the melee menu.
-
-To return to the main menu after finishing with Super Melee mode, push
-the QUIT button in the lower right.
-
-.SH "GENERAL GAME CONTROLS SUMMARY"
-.nf
-F1 or PAUSE Pause game
-F10 Exit game
-.fi
-
-.SH "FULL GAME CONTROLS SUMMARY"
-
-.nf
- Space flight
-
-UP Thrust
-LEFT and RIGHT: Steer
-SPACE or RIGHT SHIFT: Main menu
-
- Menus
-
-Arrow Keys: Scroll through selections
-ENTER or RIGHT CTRL: Make selection
-SPACE or RIGHT SHIFT: Up one level
-
- Conversations
-
-LEFT and RIGHT: Rewind/Forward
-UP and DOWN: Scroll through selections
-ENTER or RIGHT CTRL: Make selection
-SPACE or RIGHT SHIFT: Skip, Show/Hide summary
-
- Star Map
-
-Arrow Keys: Move the crosshair
-ENTER or RIGHT CTRL: Select destination
-SPACE or RIGHT SHIFT: Main menu
-Keypad +: Zoom in
-Keypad \-: Zoom out
-/ (not on the keypad): Begin search.
- (Type star or constellation name to
- find matches)
-TAB: Jump to next match.
-
- Space Combat
-
-UP: Thrust
-LEFT and RIGHT: Steer
-RIGHT CTRL or ENTER: Fire Primary Weapon
-RIGHT SHIFT: Fire Secondary Weapon
-ESCAPE: Emergency Warp Escape
-
-
- Planet Exploration
-
-UP: Forward
-LEFT and RIGHT: Steer
-RIGHT CTRL or ENTER: Fire stun bolt
-RIGHT SHIFT or ESCAPE: Blast off
-.fi
-
-.SH "MELEE CONTROLS SUMMARY"
-
-.nf
- Top Player
-
-W: Thrust
-A and D: Steer
-V: Fire Primary Weapon
-B: Fire Secondary Weapon
-
- Bottom Player
-
-UP or ENTER: Thrust
-LEFT and RIGHT: Steer
-RIGHT CTRL or ENTER: Fire Primary Weapon
-RIGHT SHIFT: Fire Secondary Weapon
-.fi
-
-These controls are configurable from the Setup Menu. You may define
-up to six "Input Templates" and assign a template to either or both
-players. Some commonly used key configurations are pre\-defined, as
-well as popular variants. To change key bindings, select the binding
-you wish to change and press ENTER. At the dialog box, press the key
-(or joystick gesture) that you wish to assign to this action.
-
-
-.SH "SAVED GAMES"
-
-The saved games are kept in your personal directory for uqm data.
-This directory is automatically created the first time you start the
-game. On Unix systems this personal uqm data is stored in \fB~/.uqm\fB.
-
-You will generally only need this if you intend to transfer savegames
-to another computer. Note that currently games saved on an PowerPC Mac
-will not work on a PC (or an Intel Mac), and vice versa. AMD64 and
-Intel savegames may be safely transferred.
-
-.SH "ADD\-ONS"
-
-As of version 0.3, The Ur\-Quan Masters has basic support for add\-on
-packages. Though it is not very elaborate yet, you can install some
-content add\-ons.
-
-Inside the directory where the content is installed, in the content/packages/
-directory, there is a directory 'addons/'. In this directory, you can
-create new directories with .zip files to be used in addition to the
-standard content .zip files.
-When you specify the command\-line option '\-\-addon <addon>', the .zip files
-inside the directory content/packages/addons/<addon> will be included
-in the game. '\-\-addon' may be specified more than once to enable multiple
-add\-ons.
-
-.SH "BUG REPORTS"
-
-After several years of enthusiastic testing, UQM has dramatically
-improved its stability, but it is still beta software, and bugs
-certainly still lurk. Upon finding a problem, we'd like you to report
-it, but before you do, please do the following:
-
-\- Try to isolate what causes it: "Crashes with a null dereference
-about half the time when firing and taunting with a Pkunk" is better
-than "Melee doesn't work." If the game crashes, notice what error
-is produced; if the game hangs, check to see if the game\-exit key
-(F12) works.
-
-\- Go to the bug database at http://bugs.uqm.stack.nl/
-and post a report of the problem there. Search the database first if
-it has been already posted; if we get many duplicate reports, processing
-them eats our time from actual development. If it's been reported, and
-you have more information, feel free to confirm that you've reproduced it
-by adding a comment to the report. If ten people have already confirmed it,
-though, it's probably best to treat it as duly reported.
-
-\- Whenever possible, for bugs that only occur under certain conditions,
-include a save game with your bug report that duplicates the bug.
-In the case of a crash, a stack trace can be very helpful for us too.
-If you don't know what a stack trace is, don't worry about it.
-
-\- If your issue is more like "support request" than bug report and you
-want help from other users, then posting it to our forum might be
-more appropriate: http://uqm.stack.nl/forum/
-
-.SH "SEE ALSO"
-The full documentation in \fB/usr/doc/uqm-0.6.3\fR
-.br
-The official Ur-Quan Masters web site at \fBhttp://sc2.sourceforge.net/\fR
diff --git a/games/uqm/uqm.SlackBuild b/games/uqm/uqm.SlackBuild
index 1e7ff55891..b59c0ab660 100644
--- a/games/uqm/uqm.SlackBuild
+++ b/games/uqm/uqm.SlackBuild
@@ -6,13 +6,18 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20210304 bkw: update for v0.8.0. script changed a good bit, can't
+# build older versions. Note to self: don't mix engine and content
+# versions without testing thoroughly! 0.7.0 engine seemed to work
+# with 0.8.0 content, but crashed when trying to enter the setup menu!
+
# 20201025 bkw: update build for new content pack 0.8.0. This mostly
# has fixes for typos in the in-game text strings. The game engine
# hasn't changed, so VERSION now has both versions. Also, moved
# the binary to /usr/games where it belongs.
PRGNAM=uqm
-VERSION=${VERSION:-0.7.0+0.8.0}
+VERSION=${VERSION:-0.8.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
@@ -51,57 +56,81 @@ fi
set -e
+# Starting with 0.8.0, we have options to use SDL2 and
+# OpenAL. Upstream made SDL2 the default, so we'll use it if
+# available (autodetect). However, OpenAL is labelled 'experimental'
+# and disabled by default, so we'll require OPENAL=yes to enable it
+# (if present).
+
+if pkg-config --exists sdl2; then
+ SDL2DEF=yes
+else
+ SDL2DEF=no
+fi
+
+SDL2=${SDL2:-$SDL2DEF}
+OPENGL=${OPENGL:-yes}
+
+case "$SDL2-$OPENGL" in
+ yes-*) GFX=sdl2 ;; # SDL2 builds always support OpenGL
+ no-no) GFX=pure ;;
+ no-yes) GFX=opengl ;;
+ *) echo "*** Invalid SDL2 and/or OPENGL values, use only 'yes' or 'no'" 1>&2
+ exit 1 ;;
+esac
+
+case "${OPENAL:-no}" in
+ yes) SND=openal ;;
+ no) SND=mixsdl ;;
+ *) echo "*** Invalid OPENAL value $OPENAL, use only 'yes' or 'no'" 1>&2
+ exit 1 ;;
+esac
+
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$SRCVER
-tar xvf $CWD/$PRGNAM-$SRCVER-source.tgz
+tar xvf $CWD/$PRGNAM-$SRCVER-src.tgz
cd $PRGNAM-$SRCVER
chown -R root:root .
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
-# uqm uses a custom build.sh to configure and build the source.
-# It's not a bad system, but it's interactive only, meaning I have
-# to script answers to the build.sh prompts, hence build_config().
-
+# Previously this script ran the interactive config, piping responses to it.
+# This is a cleaner way to do it.
# WARNING: If you're updating this SlackBuild for a new version of
-# uqm, check and make sure the build.sh options haven't changed!
+# uqm, check and make sure the config.state options haven't changed!
+sed -e "s,@GFX@,$GFX," \
+ -e "s,@SND@,$SND," \
+ $CWD/config.state.in \
+ > config.state
+
+# reprocess_config creates build.vars based on choices in config.state
+sh build.sh uqm reprocess_config
+# For the other options in config.state, we take the defaults.
# It'd be more efficient to require a system-wide libmikmod instead of
# using the included (statically linked) one, but it's not that big
# a library, and this way we don't have any external dependencies.
-build_config() {
- echo 1 # Top-level menu option 1: Build type...
- echo 1 # type 1 = release
- echo 2 # Top-level menu option 2: OpenGL support...
- echo 2 # 1 = Don't include, 2 = Include OpenGL graphics support
- echo 4 # Top-level menu option 4: Tracker music support
- echo 1 # 1 = included libmikmod, 2 = system libmikmod
- echo 11 # Top-level menu option 11: Installation paths...
- # (N.B. option 11 was option 10 in uqm 0.6.2)
- echo 1 # Option 1 = Installation prefix
- echo /usr # New value:
- echo 3 # Option 3 = Location for non-sharable data
- # New value:
- echo \$prefix/libexec
- echo # ENTER; back to top-level menu
- echo # ENTER at top-level menu = done
-}
-
-build_config | sh build.sh uqm config
-sed -i -e "s/-O3/$SLKCFLAGS/" -e '/LDFLAGS/s,-lz,-lz -lm,' build.vars
+# Use our flags.
+sed -i "s/-O3/$SLKCFLAGS/" build.vars
+
+# Actually compile the thing.
sh build.sh uqm
-strip $PRGNAM
+# "sh build.sh uqm install" would install it, but it doesn't look like
+# DESTDIR works (?). Manual install does.
+
+# Real game binary lives in libexec.
mkdir -p $PKG/usr/libexec/$PRGNAM
-cp -a $PRGNAM $PKG/usr/libexec/$PRGNAM
+install -s -m0755 -oroot -groot $PRGNAM $PKG/usr/libexec/$PRGNAM
+# Shell script wrapper tells the real binary where to find the content.
mkdir -p $PKG/usr/games
-cat $PRGNAM-wrapper > $PKG/usr/games/$PRGNAM
-chmod 0755 $PKG/usr/games/$PRGNAM
+install -oroot -groot -m0755 $PRGNAM-wrapper $PKG/usr/games/$PRGNAM
+# Include (mostly) empty content and addons dirs in the package.
mkdir -p $PKG/usr/share/$PRGNAM/content/{addons,packages}
cp content/version $PKG/usr/share/$PRGNAM/content
@@ -109,15 +138,42 @@ cp content/version $PKG/usr/share/$PRGNAM/content
cat $CWD/$PRGNAM-$CONTVER-content.uqm > \
$PKG/usr/share/$PRGNAM/content/packages/$PRGNAM-$CONTVER-content.uqm
-# Man page created for SBo (it's basically the README + roff markup)
-mkdir -p $PKG/usr/man/man1
-gzip -9c $CWD/$PRGNAM.1 > $PKG/usr/man/man1/$PRGNAM.1.gz
+# Use upstream's man page (used to ship our own).
+mkdir -p $PKG/usr/man/man6
+gzip -9c doc/users/$PRGNAM.6 > $PKG/usr/man/man6/$PRGNAM.6.gz
-# .desktop and icon borrowed from Debian
+# .desktop borrowed from Debian
mkdir -p $PKG/usr/share/applications
cat $CWD/$PRGNAM.desktop > $PKG/usr/share/applications/$PRGNAM.desktop
+
+# icons converted from "src/res/darwin/The Ur-Quan Masters.icns",
+# with icns2png.
+for i in $CWD/icons/*.png; do
+ size="$( basename $i .png )"
+ dir="$PKG/usr/share/icons/hicolor/${size}x${size}/apps"
+ mkdir -p "$dir"
+ cat $i > $dir/$PRGNAM.png
+done
+
+# old-style icon
mkdir -p $PKG/usr/share/pixmaps
-cat $CWD/$PRGNAM.xpm > $PKG/usr/share/pixmaps/$PRGNAM.xpm
+ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
+
+# dynamic slack-desc (for my own sanity!)
+ldd $PKG/usr/libexec/$PRGNAM/$PRGNAM > ldd.out
+if grep -q libSDL2 ldd.out; then
+ RENDER="SDL-2.0"
+elif grep -q libGL ldd.out; then
+ RENDER="SDL-1.2 (OpenGL)"
+else
+ RENDER="SDL-1.2 (software rendering)"
+fi
+
+if grep -q "libopenal" ldd.out; then
+ AUDIO="OpenAL"
+else
+ AUDIO="SDL"
+fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp $PRGNAM.lsm AUTHORS BUGS COPYING ChangeLog Contributing README WhatsNew \
@@ -125,7 +181,10 @@ cp $PRGNAM.lsm AUTHORS BUGS COPYING ChangeLog Contributing README WhatsNew \
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
-sed "s,@CONTVER@,$CONTVER," $CWD/slack-desc > $PKG/install/slack-desc
+sed -e "s,@CONTVER@,$CONTVER," \
+ -e "s,@RENDER@,$RENDER," \
+ -e "s,@AUDIO@,$AUDIO," \
+ $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
cd $PKG
diff --git a/games/uqm/uqm.info b/games/uqm/uqm.info
index 1818213104..ea9e8be1f4 100644
--- a/games/uqm/uqm.info
+++ b/games/uqm/uqm.info
@@ -1,9 +1,9 @@
PRGNAM="uqm"
-VERSION="0.7.0+0.8.0"
+VERSION="0.8.0"
HOMEPAGE="http://sc2.sourceforge.net/"
-DOWNLOAD="http://downloads.sourceforge.net/sc2/uqm-0.7.0-source.tgz \
+DOWNLOAD="http://downloads.sourceforge.net/sc2/uqm-0.8.0-src.tgz \
http://downloads.sourceforge.net/sc2/uqm-0.8.0-content.uqm"
-MD5SUM="f9018ea0493d7dac6a9e1006b00af7df \
+MD5SUM="63c4c300736aa3ac9b841e31b9a76389 \
6cbc9d51fa63e07c0f4d1d061136d816"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
diff --git a/games/uqm/uqm.xpm b/games/uqm/uqm.xpm
deleted file mode 100644
index fb472c6347..0000000000
--- a/games/uqm/uqm.xpm
+++ /dev/null
@@ -1,138 +0,0 @@
-/* XPM */
-static char *ur-quan-icon-std-3[] = {
-/* columns rows colors chars-per-pixel */
-"32 32 100 2",
-" c black",
-". c #0D350C",
-"X c #0B390B",
-"o c #142F12",
-"O c #1E2713",
-"+ c #2F1D16",
-"@ c #3E1B0F",
-"# c #3D1A10",
-"$ c #2B251D",
-"% c #342111",
-"& c #2C2D24",
-"* c #2F3026",
-"= c #32342B",
-"- c #373732",
-"; c #3B3D39",
-": c #064A06",
-"> c #044E04",
-", c #084108",
-"< c #035802",
-"1 c #036202",
-"2 c #036D02",
-"3 c #027802",
-"4 c #3D413C",
-"5 c #3E433E",
-"6 c #414540",
-"7 c #434843",
-"8 c #484D47",
-"9 c #4F544E",
-"0 c #595C55",
-"q c #605C5A",
-"w c #695A5E",
-"e c #7F5567",
-"r c #038303",
-"t c #018A01",
-"y c #029100",
-"u c #019800",
-"i c #009B00",
-"p c #009E00",
-"a c #00A200",
-"s c #00A800",
-"d c #00AE00",
-"f c #01B200",
-"g c #01B700",
-"h c #01BB00",
-"j c #00BE00",
-"k c #33B70D",
-"l c #00C300",
-"z c #00C600",
-"x c #01C701",
-"c c #00CA00",
-"v c #00D000",
-"b c #00D400",
-"n c #00D800",
-"m c #00DE00",
-"M c #1FCB10",
-"N c #18D40F",
-"B c #00E100",
-"V c #00E500",
-"C c #00EC00",
-"Z c #0EE30B",
-"A c #01F101",
-"S c #03F102",
-"D c #01F401",
-"F c #29C010",
-"G c #40B110",
-"H c #4FB114",
-"J c #5CAA0D",
-"K c #5AAE13",
-"L c #61A90D",
-"P c #CB4002",
-"I c #CE4102",
-"U c #CC4902",
-"Y c #DA4703",
-"T c #DC4C03",
-"R c #DC4F04",
-"E c #DE5306",
-"W c #DE6D02",
-"Q c #E15C0A",
-"! c #E47D01",
-"~ c #E6793C",
-"^ c #A5BA7F",
-"/ c #B8E332",
-"( c #BDE438",
-") c #EC9101",
-"_ c #EC9C01",
-"` c #E7A601",
-"' c #EBB601",
-"] c #ECBC02",
-"[ c #CFD41A",
-"{ c #DFC809",
-"} c #C7E742",
-"| c #D4E84C",
-" . c #D7E755",
-".. c #D5E55B",
-"X. c #9BAC93",
-"o. c #99AB98",
-"O. c #9EB589",
-"+. c #D1D0D5",
-"@. c #D3D1D7",
-"#. c None",
-/* pixels */
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.# + #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.; * Q Y = #.#.o > < < < < < > < % = #.#.#.#.#.",
-"#.#.#.#.#.#.#.#.6 = 9 ~ ' Y + X u a L L L L L d d U P 6 #.#.#.#.",
-"#.#.#.#.#.#.#.5 . 2 q o.O.Q % , y p J ) ) ` { [ h a L P #.#.#.#.",
-"#.#.#.#.#.#.& : 2 p M O.@.w = . 2 p a d d d K .} F x W @ 5 #.#.",
-"#.#.#.#.#.o > 3 u c V l 5 4 #.o 1 u d v c c x ( ..| N j y o #.#.",
-"#.#.#.#.* > 3 u l B h > - #.#.o 2 p s b n n n c ( ..| M p o #.#.",
-"#.#.#.- , r p c n s : 5 #.#.5 : u p d b v c v b c / ./ u O #.#.",
-"#.#.#.o 3 f n N 8 o 6 #.#.7 3 a p a j n v x x l c x K ( p O #.#.",
-"#.#.5 < a n N w q ; & #.#.> a u a h b m c l x j c l H ( a O #.#.",
-"#.#.& t v n t w w 9 & $ > u p s j v n x j j x l c x H ( a O #.#.",
-"#.#.1 n n 3 O $ 5 0 5 y a p d c v c j h x b V C C C Z / p O #.#.",
-"#.#.2 m y $ #.#.* 5 y k p d c b k M x l b V D D D D D D y $ #.#.",
-"#.#.< r O #.#.#.= 3 a 9 0 k k H X.M c b C D V u y g j s , 8 #.#.",
-"#.#.o = #.#.#.& t a a j J ) ) J x c n A D A > O $ O . $ #.#.#.#.",
-"#.#.#.#.#.#.& < u a f x J _ _ ) x v C D C > 7 #.#.- @ % #.#.#.#.",
-"#.#.#.X 1 > < < t f c x J ) ) J b C D V , 7 #.#.; # Y P $ #.#.#.",
-"#.#.#.# J d s p y h m X.H k k H O.Z d o #.#.#.& & 0 e _ P # #.#.",
-"#.#.#.# U G a h x y v M x v B D k N 4 $ #.#.= > 3 8 X.O.Y @ #.#.",
-"#.#.#.O P ] F c c d t v m n D D Z q q 5 $ & X 3 p l O.+.; ; #.#.",
-"#.#.#.#.@ Y ] L x c h y h Z D t O 8 w 8 ; o 3 s v m k 5 #.#.#.#.",
-"#.#.#.#.#.@ ! ] L x b m t k r - #.- 8 0 7 2 a b B h > #.#.#.#.#.",
-"#.#.#.#.#.7 @ ) ] Z B A b . 6 #.#.#.O 9 3 p c B f : #.#.#.#.#.#.",
-"#.#.#.#.#.#.8 @ Y ` k Z N & #.#.#.& < r a c n u , #.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.+ P R K N * #.#.. < t h m m u O #.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.+ @ @ r = #.. 1 t f j d 2 o #.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.. : 1 : X * = #.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
-"#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."
-};