}
}
+sub html($)
+{
+ my ($s) = @_;
+ $s =~ s/[^-_A-Za-z0-9 ]/&#@{[ord $&]};/g;
+ return $s;
+}
+
+sub nospace($)
+{
+ my ($s) = @_;
+ $s =~ s/ //g;
+ return $s;
+}
+
sub out_html($@)
{
my ($event, @data) = @_;
$map ||= 'any';
print "<h2>For server $addr type $type map $map</h2>\n";
print "<table><tr><th>Weapon</th><th>Rating</th>\n";
- printf '<th><img width=70 height=80 src="http://svn.icculus.org/*checkout*/nexuiz/trunk/Docs/htmlfiles/weaponimg/thirdperson-%s.png" alt="%s"></th>', $stats->weaponid_to_model($_), $stats->weaponid_to_name($_) for @columns;
+ printf '<th><img width=64 height=87 src="weaponimg/%s_3rd_small.png" title="%s" alt="%s"></th>', $stats->weaponid_to_model($_), html $stats->weaponid_to_name($_), html nospace $stats->weaponid_to_name($_) for @columns;
print "</tr>\n";
}
elsif($event eq 'startrow')
{
my ($row, $val) = @data;
- printf '<tr><th><img width=108 height=53 src="http://svn.icculus.org/*checkout*/nexuiz/trunk/Docs/htmlfiles/weaponimg/firstperson-%s.png" alt="%s"></th><th align=right>%s</th>', $stats->weaponid_to_model($row), $stats->weaponid_to_name($row), defined $val ? sprintf("%8.5f", $val) : "N/A";
+ printf '<tr><th><img width=96 height=64 src="weaponimg/%s_1st_small.png" title="%s" alt="%s"></th><th align=right>%s</th>', $stats->weaponid_to_model($row), html $stats->weaponid_to_name($row), html nospace $stats->weaponid_to_name($row), defined $val ? sprintf("%8.5f", $val) : "N/A";
}
elsif($event eq 'cell')
{
}
}
-my $out = $ENV{html} ? \&out_html : \&out_text;
+my $out_html_cache_fh;
+sub out_html_cache($@)
+{
+ my ($event, @data) = @_;
+ if($event eq 'startmatrix')
+ {
+ # open out file
+ my ($addr, $type, $map, @columns) = @data;
+ if(!defined $addr)
+ {
+ $type ||= ':any';
+ $map ||= ':any';
+ mkdir "$type";
+ open $out_html_cache_fh, ">", "$type/$map"
+ or warn "open $type/$map: $!";
+ select $out_html_cache_fh;
+ }
+ }
+ out_html($event, @data)
+ if defined $out_html_cache_fh;
+ if($event eq 'endmatrix')
+ {
+ # close out file
+ select STDOUT;
+ close $out_html_cache_fh
+ if defined $out_html_cache_fh;
+ undef $out_html_cache_fh;
+ }
+}
+
+my $out =
+ $ENV{html_cache} ? \&out_html_cache :
+ $ENV{html} ? \&out_html :
+ \&out_text;
LoadData();
$out->(start => ());