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 <frankhwei536@gmail.com>2016-11-24 16:23:09 -0500
commit56c9984511f016eab7e1278ba9e40d88bb59a162 (patch)
tree1bfa6d3aeb3bf2a6ffec71387ac073cd0b8b2a51 /apps/plugins/puzzles/wceinf.pl
parent29648f817677b84c03c2bcfe89eb8cf53653e7db (diff)
downloadrockbox-puzzles.zip
rockbox-puzzles.tar.gz
rockbox-puzzles.tar.bz2
rockbox-puzzles.tar.xz
[WIP] Port of Simon Tatham's Puzzle Collectionpuzzles
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. The following games are at least partially broken for various reasons: Cube: crash with certain settings Galaxies: crash Inertia: crash Keen: input issues Loopy: weird stuff happens Map: crash on input Mines: weird stuff happens on target Palisade: input issues Signpost: crash on input Solo: input issues Towers: input and drawing issues Train Tracks: drawing issues Twiddle: weird animation on target Undead: input and drawing issues Unequal: input and drawing issues Untangle: input issues All in all, about 40% of the games are at least partially broken. 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 0000000..4756f3c
--- /dev/null
+++ b/apps/plugins/puzzles/wceinf.pl
@@ -0,0 +1,65 @@
+#!/usr/bin/perl
+
+# Perl script to generate a .INF file for building a Pocket PC .CAB
+# archive of Puzzles. This has to be scripted so that it can read
+# gamedesc.txt and automatically adjust to the current available
+# set of puzzles.
+
+# Usage:
+#
+# $ ./wceinf.pl gamedesc.txt > puzzles.inf
+
+$desc = shift @ARGV;
+open DESC, "<", $desc;
+while (<DESC>) {
+ chomp;
+ @_ = split /:/;
+ push @exes, $_[1];
+ $names{$_[1]} = $_[2];
+}
+close DESC;
+
+print '[Version]'."\n";
+print 'Signature = "$Windows NT$" ; required as-is'."\n";
+print 'Provider = "Simon Tatham" ; full app name will be "<Provider> <AppName>"'."\n";
+print 'CESignature = "$Windows CE$" ; required as-is'."\n";
+print ''."\n";
+print '[CEStrings]'."\n";
+print 'AppName = "Puzzle Collection" ; full app name will be "<Provider> <AppName>"'."\n";
+print 'InstallDir = %CE8%\%AppName% ; "\Program Files\Games\Puzzle Collection" (default install directory)'."\n";
+print ''."\n";
+print '[CEDevice.x86]'."\n";
+print 'ProcessorType = 686'."\n";
+print ''."\n";
+print '[CEDevice.ARM]'."\n";
+print 'ProcessorType = 2577'."\n";
+print ''."\n";
+print '[SourceDisksNames.x86] ; CPU-dependent files'."\n";
+print '2 = ,"x86 Files",,.'."\n";
+print ''."\n";
+print '[SourceDisksNames.ARMV4] ; CPU-dependent files'."\n";
+print '2 = ,"ARM Files",,.'."\n";
+print ''."\n";
+print '[SourceDisksFiles]'."\n";
+for $exe (@exes) {
+ print $exe.' = 2'."\n";
+}
+print ''."\n";
+print '[DefaultInstall]'."\n";
+print 'CopyFiles = PuzzleFiles'."\n";
+print 'CEShortcuts = Links'."\n";
+print ''."\n";
+print '[DestinationDirs]'."\n";
+print 'PuzzleFiles = 0, %InstallDir%'."\n";
+print 'Links = 0, %CE14%\Puzzles'."\n";
+print ''."\n";
+print ';File copy list.'."\n";
+print '[PuzzleFiles]'."\n";
+for $exe (@exes) {
+ print $exe."\n";
+}
+print ''."\n";
+print '[Links]'."\n";
+for $exe (@exes) {
+ print '"'.$names{$exe}.'",0,'.$exe."\n";
+}