chiark / gitweb /
add robots.txt to stop crawlers delving into lookup/ and doing searches etc.
[ypp-sc-tools.db-live.git] / yarrg / Commods.pm
index b7b18a615a2384e0b2dd51b5e0bc3d58fcde916e..bce9a8e13b2cb33afd05feb7ada3d2410aa5ea02 100644 (file)
@@ -102,7 +102,7 @@ my %colours; # eg $colours{'c'}{'black'}= $sources
 my (@rawcm, @nocm); # eg $rawcm[0]='fine rum'; $rawcm[1]='fine %c cloth'
 
 my %colour_ordvals; # $colour_ordvals{'c'}{'green'}= '30';
-my %commodclasses; # $commodclasses{'dye'}= '3';
+our %commodclasses; # $commodclasses{'dye'}= '3';
 
 # IMPORTANT
 #  when extending the format of source-info in a non-backward
@@ -137,7 +137,7 @@ sub parse_info1 ($$$) {
            @ctx= (sub { push @nocm, lc $_; });
        } elsif (m/^commodclasses$/) {
            @ctx= (sub {
-               die unless m/^\*([-a-z]+)$/;
+               die unless m/^\*([_a-z]+)$/;
                $commodclasses{$1}= scalar keys %commodclasses;
            });
        } elsif (m/^ocean (\w+)$/) {
@@ -207,23 +207,27 @@ sub parse_info1 ($$$) {
            $commods{$ucname}{Srcs} .= $ss;
            my $c= $commods{$ucname};
            $c->{Volume}= 1000;
+           $c->{Flags}= '';
            my ($ordval, $ordclassval);
            foreach my $prop (defined $props ? split /\s+/, $props : ()) {
                if ($prop =~ m/^([1-9]\d*)(k?)g$/) {
                    $c->{Mass}= $1 * ($2 ? 1000 : 1);
                } elsif ($prop =~ m/^([1-9]\d*)l$/) {
                    $c->{Volume}= $1 * 1000;
-               } elsif ($prop =~ m/^\*([-a-z]+)$/) {
+               } elsif ($prop =~ m/^\*([_a-z]+)$/) {
                    $c->{Class}= $1;
                    die "$1" unless exists $commodclasses{$1};
                    $ordclassval= 1e7 + $commodclasses{$1} * 1e7;
                } elsif ($prop =~ m/^\@(\d+\+?)$/) {
                    $ordval= $1;
                    $ordval =~ s/^(\d+)\+$/ $1 + $lnoix * 10 /e;
+               } elsif ($prop =~ m/^\!([a-z]+)$/) {
+                   $c->{Flags} .= $1;
                } else {
                    die "unknown property $prop for $ucname";
                }
            }
+           $c->{ClassOrdval}= $ordclassval;
            if (defined $ordbase && defined $ordval && defined $ordclassval) {
                my $ordvalout= $ordbase + $ordval + $ordclassval;
                $c->{Ordval}= $ordvalout;