#!/usr/bin/perl -T -w
# This is used  to add life to life
# This is a QUICK hack to convert life files to xlock's life format.
# Patterns MUST have <= 64 pts at start for life.c to use the data generated
# Below is an example of a life file without the first initial #'s
# Call the file piston.life and run it like xlocklife.pl < piston.life
#piston.life
##P -10 -3  Treated as a comment, program finds own center
#..........*...........
#..........****........
#**.........****.......
#**.........*..*.....**
#...........****.....**
#..........****........
#..........*...........

local($PTS, $X, $Y);

print "
Drop these points in life.c, within the 'patterns' array.
Note if the number of points > 64, one must increase points NUMPTS;
also to fit most screens and especially the iconified window,
one should have the size < 32x32.\n\n";
&search;
print "\npoints = $PTS; size = ${X}x$Y\n";

sub search {
    local ($col, $row, $firstcol, $firstrow);
    local ($i, $j, $found, $c, $tempx, $tempy);
    local (@array);

    $col = $row = 0;
    $firstcol = 80;
    $firstrow = -1;
    $PTS = $X = $Y = 0;
    while (<>) {
         if ((!($_ =~ /^#/)) && (!($_ =~ /^x/))) {
            @chars = split(//);
            $col = 0;
            $number = 0;
            foreach $c (@chars) {
                $col++;
                if ($c =~ /[1234567890]/) {
			$number = $number * 10 + ($c - '0');
                } elsif ($c =~ /[b]/) {
			if ($number == 0) {
                		printf ".";
			} else {
				for ($j = 0; $j < $number; $j++) {
                			printf ".";
				}
				$number = 0;
			}
		} elsif ($c =~ /[o]/) {
			if ($number == 0) {
                		printf "o";
    			} else {
				for ($j = 0; $j < $number; $j++) {
                			printf "o";
				}
				$number = 0;
			}
		} elsif ($c =~ /[\$]/) {
			if ($number == 0) {
                		printf "\n";
    			} else {
				for ($j = 0; $j < $number; $j++) {
                			printf "\n";
				}
				$number = 0;
			}
		} elsif ($c =~ /[\!]/) {
                	printf "\n";
			return;

		}
		$row++;
	    }
         }
  }
  print "127\n	},\n";
  $X = $col;
}
