summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/webpage.pl
diff options
context:
space:
mode:
authorFranklin Wei <frankhwei536@gmail.com>2016-11-20 15:16:41 -0500
committerFranklin Wei <me@fwei.tk>2016-12-18 18:13:22 +0100
commit1a6a8b52f7aa4e2da6f4c34a0c743c760b8cfd99 (patch)
tree8e7f2d6b0cbdb5d15c13457b2c3e1de69f598440 /apps/plugins/puzzles/webpage.pl
parent3ee79724f6fb033d50e26ef37b33d3f8cedf0c5b (diff)
downloadrockbox-1a6a8b52f7aa4e2da6f4c34a0c743c760b8cfd99.tar.gz
rockbox-1a6a8b52f7aa4e2da6f4c34a0c743c760b8cfd99.zip
Port of Simon Tatham's Puzzle Collection
Original revision: 5123b1bf68777ffa86e651f178046b26a87cf2d9 MIT Licensed. Some games still crash and others are unplayable due to issues with controls. Still need a "real" polygon filling algorithm. Currently builds one plugin per puzzle (about 40 in total, around 100K each on ARM), but can easily be made to build a single monolithic overlay (800K or so on ARM). The following games are at least partially broken for various reasons, and have been disabled on this commit: Cube: failed assertion with "Icosahedron" setting Keen: input issues Mines: weird stuff happens on target Palisade: input issues Solo: input issues, occasional crash on target Towers: input issues Undead: input issues Unequal: input and drawing issues (concave polys) Untangle: input issues Features left to do: - In-game help system - Figure out the weird bugs Change-Id: I7c69b6860ab115f973c8d76799502e9bb3d52368
Diffstat (limited to 'apps/plugins/puzzles/webpage.pl')
-rwxr-xr-xapps/plugins/puzzles/webpage.pl69
1 files changed, 69 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/webpage.pl b/apps/plugins/puzzles/webpage.pl
new file mode 100755
index 0000000000..3a0779ef0a
--- /dev/null
+++ b/apps/plugins/puzzles/webpage.pl
@@ -0,0 +1,69 @@
1#!/usr/bin/perl
2
3# Construct the two pieces of my main puzzle collection web page that
4# need to vary with the set of puzzles: the big list of <span>s with
5# puzzle pictures and links etc, and the list of Windows executable
6# files down in the downloads section.
7
8use strict;
9use warnings;
10use HTML::Entities;
11
12open my $desc, "<", "gamedesc.txt"
13 or die "gamedesc.txt: open: $!\n";
14
15open my $spans, ">", "wwwspans.html"
16 or die "wwwspans.html: open: $!\n";
17
18open my $links, ">", "wwwlinks.html"
19 or die "wwwspans.html: open: $!\n";
20
21my $n = 0;
22while (<$desc>) {
23 chomp;
24 my ($id, $win, $displayname, $description, $summary) = split /:/, $_;
25
26 printf $spans
27 '<span class="puzzle"><table>'.
28 '<tr><th align="center">%s</th></tr>'.
29 '<tr><td align="center">'.
30 '<img style="margin: 0.5em" alt="" title="%s" width=150 height=150 border=0 src="%s-web.png" />'.
31 '</td></tr>'.
32 '<tr><td align="center" style="font-size: 70%%"><code>[</code>'.
33 ' <a href="java/%s.html">java</a> '.
34 '|'.
35 ' <a href="js/%s.html">js</a> '.
36 '|'.
37 ' <a href="doc/%s.html#%s">manual</a> '.
38 '<code>]</code><br><code>[</code>'.
39 ' <a href="%s"><code>%s</code></a> '.
40 '<code>]</code></td></tr>'.
41 '<tr><td align="center">%s</td></tr></table></span>'.
42 "\n",
43 encode_entities($displayname),
44 encode_entities($description),
45 encode_entities($id),
46 encode_entities($id),
47 encode_entities($id),
48 encode_entities($id),
49 encode_entities($id),
50 encode_entities($win),
51 encode_entities($win),
52 encode_entities($summary);
53
54 if ($n > 0) {
55 if ($n % 5 == 0) {
56 print $links "<br />";
57 } else {
58 print $links " | ";
59 }
60 }
61 printf $links '<a href="%s">%s</a>',
62 encode_entities($win), encode_entities($win);
63
64 $n++;
65}
66
67close $desc;
68close $spans;
69close $links;