@EXPORT = qw(&parse_info_clientside &fetch_with_rsync
&parse_info_serverside &parse_info_serverside_ocean
%oceans %commods %clients %routes %route_mysteries
+ %vessels %shotname2damage
&parse_pctb_commodmap %pctb_commodmap @pctb_commodmap
&get_our_version &check_tsv_line
&pipethrough_prep &pipethrough_run
our %clients; # eg $clients{'ypp-sc-tools'}= [ qw(last-page) ];
our %routes; # eg $routes{'Midnight'}{'Orca'}{'Tinga'}= $sources NB abbrevs!
our %route_mysteries; # eg $route_mysteries{'Midnight'}{'Norse'}= 3
+our %vessels; # eg $vessels{'War Brig'}{Shot}='medium'
+ # $vessels{'War Brig'}{Volume}= 81000
+ # $vessels{'War Brig'}{Mass}= 54000
+our %shotname2damage; # eg $shotname2damage{'medium'}= 3;
# $sources = 's[l]b';
# 's' = Special Circumstances; 'l' = local ; B = with Bleach
$oceans{$ocean}{$arch}{$_} .= $src;
};
});
+ } elsif (m/^vessels$/) {
+ @ctx= (sub {
+ m/^ ([A-Z][a-z\ ]+[a-z]) \t\s*
+ (small|medium|large) \t\s*
+ (\d+) \s*\t\s*
+ (\d+) $/x
+ or die;
+ $vessels{$1}= {
+ Shot => $2,
+ Volume => $3,
+ Mass => $4,
+ };
+ });
+ } elsif (m/^shot$/) {
+ @ctx= (sub {
+ m/^ ([a-z]+) \s+ (\d+) $/x or die;
+ $shotname2damage{$1}= $2;
+ });
} elsif (m/^routes (\w+)$/) {
my $ocean= $1;
@ctx= (sub {
dist INTEGER NOT NULL,
PRIMARY KEY (aiid, biid)
);
+ CREATE TABLE IF NOT EXISTS vessels (
+ name TEXT NOT NULL,
+ mass INTEGER NOT NULL,
+ volume INTEGER NOT NULL,
+ shot INTEGER NOT NULL,
+ PRIMARY KEY (name)
+ );
END
;
$dbh->commit;
}
+#---------- vessel types ----------
+{
+ my $idempotent= $dbh->prepare(<<'END')
+ INSERT OR REPLACE INTO vessels (name, shot, mass, volume)
+ VALUES (?,?,?,?)
+END
+ ;
+ foreach my $name (sort keys %vessels) {
+ my $v= $vessels{$name};
+ my $shotdamage= $shotname2damage{$v->{Shot}};
+ die "no shot damage for shot $v->{Shot} for vessel $name"
+ unless defined $shotdamage;
+ my @qa= ($name, $shotdamage, map { $v->{$_} } qw(Mass Volume));
+ $idempotent->execute(@qa);
+ }
+ $dbh->commit;
+}
+
#---------- island list ----------
#---------- routes ----------
# now done by yppedia-chart-parser
+vessels
+ Sloop small 20250 13500
+ Cutter small 60750 40500
+ Dhow medium 20250 13500
+ Longship small 20250 13500
+ Baghlah medium 27000 18000
+ Merchant brig medium 135000 90000
+ War brig medium 81000 54000
+ Merchant galleon large 405000 270000
+ Xebec medium 182250 121500
+ War frigate large 324000 216000
+ Grand frigate large 810000 540000
+
+shot
+ small 2
+ medium 3
+ large 4
+
commods
kraken's blood 1kg
%c dye 1kg