summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/wceinf.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/wceinf.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/wceinf.pl')
-rw-r--r--apps/plugins/puzzles/wceinf.pl65
1 files changed, 65 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/wceinf.pl b/apps/plugins/puzzles/wceinf.pl
new file mode 100644
index 0000000000..4756f3c2b8
--- /dev/null
+++ b/apps/plugins/puzzles/wceinf.pl
@@ -0,0 +1,65 @@
1#!/usr/bin/perl
2
3# Perl script to generate a .INF file for building a Pocket PC .CAB
4# archive of Puzzles. This has to be scripted so that it can read
5# gamedesc.txt and automatically adjust to the current available
6# set of puzzles.
7
8# Usage:
9#
10# $ ./wceinf.pl gamedesc.txt > puzzles.inf
11
12$desc = shift @ARGV;
13open DESC, "<", $desc;
14while (<DESC>) {
15 chomp;
16 @_ = split /:/;
17 push @exes, $_[1];
18 $names{$_[1]} = $_[2];
19}
20close DESC;
21
22print '[Version]'."\n";
23print 'Signature = "$Windows NT$" ; required as-is'."\n";
24print 'Provider = "Simon Tatham" ; full app name will be "<Provider> <AppName>"'."\n";
25print 'CESignature = "$Windows CE$" ; required as-is'."\n";
26print ''."\n";
27print '[CEStrings]'."\n";
28print 'AppName = "Puzzle Collection" ; full app name will be "<Provider> <AppName>"'."\n";
29print 'InstallDir = %CE8%\%AppName% ; "\Program Files\Games\Puzzle Collection" (default install directory)'."\n";
30print ''."\n";
31print '[CEDevice.x86]'."\n";
32print 'ProcessorType = 686'."\n";
33print ''."\n";
34print '[CEDevice.ARM]'."\n";
35print 'ProcessorType = 2577'."\n";
36print ''."\n";
37print '[SourceDisksNames.x86] ; CPU-dependent files'."\n";
38print '2 = ,"x86 Files",,.'."\n";
39print ''."\n";
40print '[SourceDisksNames.ARMV4] ; CPU-dependent files'."\n";
41print '2 = ,"ARM Files",,.'."\n";
42print ''."\n";
43print '[SourceDisksFiles]'."\n";
44for $exe (@exes) {
45 print $exe.' = 2'."\n";
46}
47print ''."\n";
48print '[DefaultInstall]'."\n";
49print 'CopyFiles = PuzzleFiles'."\n";
50print 'CEShortcuts = Links'."\n";
51print ''."\n";
52print '[DestinationDirs]'."\n";
53print 'PuzzleFiles = 0, %InstallDir%'."\n";
54print 'Links = 0, %CE14%\Puzzles'."\n";
55print ''."\n";
56print ';File copy list.'."\n";
57print '[PuzzleFiles]'."\n";
58for $exe (@exes) {
59 print $exe."\n";
60}
61print ''."\n";
62print '[Links]'."\n";
63for $exe (@exes) {
64 print '"'.$names{$exe}.'",0,'.$exe."\n";
65}