]> mj.ucw.cz Git - anim.git/blobdiff - goldberg.pl
Improved command-line parsing.
[anim.git] / goldberg.pl
index af30927afbd2811c2892407ac3342253292008fd..417dbe6aaad00b4102077aed71408be64d3d3c37 100755 (executable)
@@ -13,7 +13,10 @@ use AA::Graph;
 use AA::Net;
 use AA::Anim;
 
-my $ui = AA::UI->new('');
+my $anim = shift @ARGV;
+my $output = shift @ARGV || "";
+
+my $ui = AA::UI->new($output);
 
 my $back = AA::Background->new('bg');
 
@@ -58,20 +61,25 @@ sub flow($$) {
 
 sub up($) {
        my ($i) = @_;
-       $v[$i]->Set('h', $v[$i]->Get('h') + 1);
+       my $v = $v[$i];
+       my $h = $v[$i]->Get('h');
+       $v->SetTicker('h', $h, $h+1, 10);
 }
 
 sub hint($) {
        my ($h) = @_;
-       for (my $i=0; $i<@v; $i++) {
-               $v[$i]->Set('hint', $i == $h);
-       }
+       AA::Anim->add_final(sub {
+               for (my $i=0; $i<@v; $i++) {
+                       $v[$i]->Set('hint', $i == $h);
+               }
+       });
 }
 
 my $scenario;
 
 if (!@ARGV || $ARGV[0] eq "1") {
        $scenario = [
+               sub { },
                sub { flow(0, 5);       hint(1); },
                sub { up(1); },
                sub { flow(1, 5);       hint(2); },
@@ -86,6 +94,7 @@ if (!@ARGV || $ARGV[0] eq "1") {
                $e[$i]->Set('c', 5-$i);
        }
        $scenario = [
+               sub { },
                sub { flow(0, 5); hint(1); },
                sub { up(1); },
                sub { flow(1, 4); hint(2); },
@@ -132,6 +141,7 @@ if (!@ARGV || $ARGV[0] eq "1") {
                $e[$i]->Set('c', 5-$i);
        }
        $scenario = [
+               sub { },
                sub { flow(0, 5); hint(1); },
                sub { up(1); },
                sub { flow(1, 4); },