initial/final stocks feature
query_routesearch should show capital for each voyage
-query_routesearch should support ending in specific place(s)
USEFUL WEBSITE UI SUGGESTIONS
15:59 <fivemack> font size=-3 for the license info at the bottom
would also be good
+
+
+USER GUIDE
+----------
+
+Document "Minimum trade value"
+Document "Specific destination" (routesearch)
--- /dev/null
+<%doc>
+
+ This is part of the YARRG website. YARRG is a tool and website
+ for assisting players of Yohoho Puzzle Pirates.
+
+ Copyright (C) 2009 Ian Jackson <ijackson@chiark.greenend.org.uk>
+ Copyright (C) 2009 Clare Boothby
+
+ YARRG's client code etc. is covered by the ordinary GNU GPL (v3 or later).
+ The YARRG website is covered by the GNU Affero GPL v3 or later, which
+ basically means that every installation of the website will let you
+ download the source.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Affero General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ Yohoho and Puzzle Pirates are probably trademarks of Three Rings and
+ are used without permission. This program is not endorsed or
+ sponsored by Three Rings.
+
+
+ This Mason component simply defines how to look up a single island name.
+ It is called by qtextstring.
+
+</%doc>
+
+<%attr>
+multiple => 0
+maxambig => 5
+</%attr>
+
+<%method sqlstmt>
+ SELECT islandname,islandid,NULL
+ FROM islands WHERE islandname LIKE ?
+</%method>
+
+<%method nomatch>
+ no island matches <% $ARGS{specq} %>
+</%method>
+
+<%method ambiguous>
+ ambiguous island <% $ARGS{specq} %>,
+ could be <% $ARGS{couldbe} |h %>
+</%method>
+
+<%method manyambig>
+
+</%method>
Before => 'Type of routes to search for: ',
Values => [ [ 0, 'Open-ended' ],
[ 1, 'Circular' ],
+ [ 2, 'Specific destination' ],
],
QuerySpecific => 1,
});
foreach my $var (keys %ARGS) {
next unless $var =~
m/^(?: (?:route|commod|capacity|capital|minprofit
- |island)string |
+ |island|dest)string |
lossperleague | distance |
commodid |
islandid \d |
my @warningfs;
my @islandids;
+my $destspec;
+
my $maxmaxdist=35;
my $maxcpu=90;
my $concur_lim=5;
islandids_r => \@islandids, archipelagoes_r => undef
&>
+% my $searchtype= $ARGS{RouteSearchType};
+% if ($searchtype == 0) {
+% $destspec= 'any';
+% } elsif ($searchtype == 1) {
+% $destspec= 'circ';
+% } elsif ($searchtype == 2) {
+
+Destination (one island only):
+<& qtextstring, qa => $qa, dbh => $dbh, emsgstore => \$emsg,
+ thingstring => 'deststring',
+ prefix => 'ds', boxopts => 'size=40',
+ onresults => sub {
+print STDERR "ONRESULTS @_\n";
+ return unless @_;
+ my ($canonname, $island, $arch) = @{ $_[0] };
+ die unless defined $island;
+ $destspec= $island;
+ }
+ &>
+
+% } else {
+% die "$destspec ?";
+% }
+
<&| enter_advrouteopts, qa=>$qa, dbh=>$dbh, routeparams=>$routeparams &>
<td>
unless $emsgokorprint->($emsg)
and @islandids
and $allargs->{'submit'}
+ and defined $destspec
and (defined $routeparams->{MaxMass} or
defined $routeparams->{MaxVolume});
? $routeparams->{LossPerLeaguePct}*0.01 : 1e-9;
push @rsargs, 0; #$routeparams->{MinProfit};
push @rsargs, 'search',$maxdist, $maxcountea,$maxcountea;
-push @rsargs, $ARGS{RouteSearchType} ? 'circ' : 'any';
+push @rsargs, $destspec;
push @rsargs, @islandids;
m/[^-.0-9a-zA-Z]/ and die "$_ $& ?" foreach @rsargs;