5 open CM, "commodmap" or die $!;
7 m/^(\S.*\S)\t(\d+)$/ or die;
12 %stallkinds= qw(A Apothecary
21 $!=0; my $l= <STDIN>; die $! unless defined $l;
22 die $! if STDIN->error;
24 #print STDERR "GOT LINE [$l]\n";
30 my $r= read STDIN,$b,2; die $! if STDIN->error;
32 my $v= scalar unpack "v", $b;
33 #printf STDERR "GOT INT %d 0x%x\n", $v, $v;
38 my ($what,$ary,$ix) = @_;
40 return $got if defined $got;
45 printf "# Version: \"%s\"\n", getline();
46 $nstalls= getline()+0;
48 while (@stalls < $nstalls) {
52 $sk= $stallkinds{$kind};
53 die "kind $kind in $_ ?" unless defined $sk;
58 unshift @stalls, undef;
62 foreach $bs qw(Buy Sell) {
64 for ($commodnum=0; $commodnum<$ncommods; $commodnum++) {
67 for ($offernum=0; $offernum<$offers; $offernum++) {
73 inmap('commod',@commodmap,$commodix),
74 inmap('stall',@stalls,$stallix)) or die $!;
75 if ($bs eq 'Sell') { print "\t\t" or die $!; }
76 printf("\t%d\t%d", $price, $qty) or die $!;
77 if ($bs eq 'Buy') { print "\t\t" or die $!; }