Xref: feenix.metronet.com alt.games.xpilot:721
Path: feenix.metronet.com!news.utdallas.edu!wupost!howland.reston.ans.net!pipex!uunet!ncd.com!newshost.ncd.com!hansen!greg
From:
[email protected] (Greg Renda)
Newsgroups: alt.games.xpilot
Subject: maptoppm
Date: 25 Sep 1993 02:02:57 GMT
Organization: Network Computing Devices Inc., Mt. View, CA, USA
Lines: 122
Distribution: world
Message-ID: <
[email protected]>
NNTP-Posting-Host: hansen.ncd.com
Here's a perl script to convert map files to ppm format. This lets
you browse maps without having to run xpilot or the map editor. Of
course you'll need the pbm utilities as well. I use it with the
following simple script:
maptoppm < $1 | pnmenlarge 2 | pnmtoxwd | xwud
The colors are as follows:
space - black
walls - gray
fuel - red
cannon - white
bases - blue
left gravity - green
right gravity - green
positive gravity - cyan
negative gravity - magenta
two-way wormhole - yellow
in wormhole - orange
out wormhole - pink
Enjoy!
-Greg
#!/usr/local/bin/perl -- # -*-Perl-*-
$black='0 0 0';
$white='255 255 255';
$gray='128 128 128';
$red='255 0 0';
$green='0 255 0';
$blue='0 0 255';
$yellow='255 255 0';
$magenta='255 0 255';
$cyan='0 255 255';
$orange='255 165 0';
$pink='255 192 203';
$wall='xswqa';
$space=' ';
$fuel='#';
$cannon='rdfc';
$base='_*';
$gravLeft='<';
$gravRight='>';
$gravPlus='+';
$gravMinus='\-';
$gravity=$gravLeft.$gravRight.$gravPlus.$gravMinus;
$wormbi='@';
$wormin='(';
$wormout=')';
$wormhole=$wormbi.$wormin.$wormout;
$symbols=$wall.$fuel.$cannon.$gravity.$wormhole.$base;
while (<>)
{
($lower = $_) =~ tr/[A-Z]/[a-z]/;
if ($lower =~ /^mapwidth/)
{
s/\s//g;
($dummy, $width) = split(/:/);
next;
}
if ($lower =~ /^mapheight/)
{
s/\s//g;
($dummy, $height) = split(/:/);
next;
}
if (!$data)
{
if ($data = $lower =~ /^mapdata/)
{
s/\s//g;
($dummy, $dummy, $end) = split(/:/);
print "P3\n$width $height\n255\n"
}
next;
}
last if /^$end/;
chop;
s/[^$symbols]/ /g; # get rid characters we don't care about
s/[$space]/$black /g;
s/[$wall]/$gray /g;
s/[$fuel]/$red /g;
s/[$cannon]/$white /g;
s/[$base]/$blue /g;
s/[$gravLeft]/$green /g;
s/[$gravRight]/$green /g;
s/[$gravPlus]/$cyan /g;
s/[$gravMinus]/$magenta /g;
s/[$wormbi]/$yellow /g;
s/[$wormin]/$orange /g;
s/[$wormout]/$pink /g;
print "$_\n";
}
--
Greg Renda
Network Computing Devices Inc. Phone: (415) 691-2564
350 North Bernardo Avenue FAX: (415) 961-6289
Mountain View, CA 94043 Email:
[email protected]