From: Ian Jackson Date: Fri, 13 Nov 2009 12:50:07 +0000 (+0000) Subject: Show commod class in voyage plan too X-Git-Tag: 6.0~6 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.main.git;a=commitdiff_plain;h=9c3c0cfe4257a1365c8d82ff6f9b7908a4eb74a1 Show commod class in voyage plan too --- diff --git a/yarrg/web/docs b/yarrg/web/docs index 27ee3d5..5c058bd 100755 --- a/yarrg/web/docs +++ b/yarrg/web/docs @@ -199,19 +199,29 @@ fact be possible. In practice this is unlikely to be a problem!

Locating commodities in the YPP client UI

In the Voyage Trading Plan, YARRG indicates after the commodity name -where in the YPP commodity UI each commodity can be found. This is -done by showing one of the following indications in the table: -
- TT, T, M, B, BB -
+where in the YPP commodity UI each commodity can be found. First +comes the initial letter of the category: +% my $dbh= dbw_connect('Midnight'); +% my $getclasses= $dbh->prepare( +% "SELECT commodclass FROM commodclasses ORDER BY commodclass"); +% $getclasses->execute(); +<% + join '; ', map { $_->[0] =~ m/^./ or die; "$&$'" } + @{ $getclasses->fetchall_arrayref() } +%>. +

+Then, if applicable, follows one of the following indications: +<% join ', ', map { "$_" } qw(tt t m b bb) %> indicating whether the commodity is in the top, 2nd, middle, 2nd-to-last or bottom fifth of the list of commodities of the same -class, respectively. For example, +class, respectively. +

+For example,

Fine pink cloth  
T
+ title="Fine pink cloth is under Cloth, commodity 14 of 55">C t
indicates that Fine pink cloth can be found under Cloth, @@ -223,15 +233,15 @@ Fine pink cloth is under Cloth, commodity 14 of 55

-Note that the exact location of the commodity may vary because the -system only considers the list of all possible commodities, not the -list of actual offers at the island in question. +The position indicator (tt, t, etc.) isn't shown for very small +categories. + +The exact location of the commodity in the actual game +client may vary because YARRG only considers the list of all possible +commodities, not the list of actual offers at the island in question. -

Also, not all commodities are always completely categorised or -ordered; we are working to add the additional data. Uncategorised or -unordered commodities don't have a position indicator (TT, T etc.) -next to them. +ordered; we are working to add the additional data <& footer &> diff --git a/yarrg/web/routetrade b/yarrg/web/routetrade index 08bad33..72e9bf7 100644 --- a/yarrg/web/routetrade +++ b/yarrg/web/routetrade @@ -693,25 +693,31 @@ Generated by YARRG at <% } unless $$todo; $$todo->{'commodname'}= $f->{'commodname'}; $$todo->{'posinclass'}= ''; - if ($f->{'posinclass'}) { - my $findclass= $dbh->prepare(<{'posinclass'}; + + my $findclass= $dbh->prepare(<execute($f->{'commodclassid'}); - my $classinfo= $findclass->fetchrow_hashref(); - if ($classinfo->{'maxposinclass'} >= 8) { + $findclass->execute($f->{'commodclassid'}); + my $classinfo= $findclass->fetchrow_hashref(); + if ($classinfo) { + my $clname= $classinfo->{'commodclass'}; + my $desc= encode_entities(sprintf "%s is under %s", + $f->{'commodname'}, $clname); + my $abbrev= substr($clname,0,1); + if ($incl) { my $maxpic= $classinfo->{'maxposinclass'}; - my $inpic= $f->{'posinclass'}; - my @tmbs= qw(TT T M B BB); - my $tmbi= ($inpic+0.5)*$#tmbs/$maxpic; - my $desc= (sprintf "%s is under %s,". - " commodity %d of %d", - $f->{'commodname'}, - $classinfo->{'commodclass'}, - $inpic, $maxpic); - $$todo->{'posinclass'}= - "

$tmbs[$tmbi]
"; + $desc.= (sprintf ", commodity %d of %d", + $incl, $maxpic); + if ($classinfo->{'maxposinclass'} >= 8) { + my @tmbs= qw(tt t m b bb); + my $tmbi= ($incl+0.5)*$#tmbs/$maxpic; + $abbrev.= " ".$tmbs[$tmbi]; + } } + $$todo->{'posinclass'}= + "
" + .$abbrev."
"; } $$todo->{'stallname'}= $stallname; $$todo->{Price}= $price;