summaryrefslogtreecommitdiff
path: root/app/xlockmore/etc/xlocklife.pl
diff options
context:
space:
mode:
Diffstat (limited to 'app/xlockmore/etc/xlocklife.pl')
-rw-r--r--app/xlockmore/etc/xlocklife.pl86
1 files changed, 86 insertions, 0 deletions
diff --git a/app/xlockmore/etc/xlocklife.pl b/app/xlockmore/etc/xlocklife.pl
new file mode 100644
index 000000000..07e56c6b2
--- /dev/null
+++ b/app/xlockmore/etc/xlocklife.pl
@@ -0,0 +1,86 @@
+#!/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 ($row, $col, $firstrow, $firstcol);
+ local ($i, $j, $found, $c, $tempx, $tempy);
+ local (@array);
+
+
+ $row = $col = 0;
+ $firstrow = -1;
+ $firstcol = 80;
+ $PTS = $X = $Y = 0;
+ while (<>) {
+ if (!($_ =~ /^#/))
+ {
+ @chars = split(//);
+ $col = 0;
+ foreach $c (@chars) {
+ $col++;
+ if ($c =~ /[\*0Oo]/) {
+ if ($firstrow < 0) {
+ $row = $firstrow = 1;
+ }
+ if ($col < $firstcol) {
+ $firstcol = $col;
+ }
+ if ($row > $Y) {
+ $Y = $row;
+ }
+ if ($col > $X) {
+ $X = $col;
+ }
+ $array{$col, $row} = 1;
+ $PTS++;
+ }
+ }
+ $row++;
+ }
+ }
+ $col = $X - $firstcol + 1;
+ $row = $Y;
+ print "\t{\t\t/* */\n\t\t";
+ for ($j = 0; $j <= $Y; $j++) {
+ $found = 0;
+ for ($i = 0; $i <= $X; $i++) {
+ if ($array{$i, $j}) {
+ if ($found) {
+ printf " ";
+ }
+ $found = 1;
+ $tempx = $i - int(($col + 2) / 2) - $firstcol + 1;
+ $tempy = $j - int(($row + 2) / 2);
+ printf "$tempx, $tempy,";
+ }
+ }
+ if ($found) {
+ print "\n\t\t";
+ }
+ }
+ print "127\n\t},\n";
+ $X = $col;
+}