Commit graph

21 commits

Author SHA1 Message Date
Solomon Peachy
3cb272c97a build: Fix puzzles build due to missing dependency
As rbcompat.h is -include'd on the command line, the mkdep script doesn't
pick it up.  Explicitly add the dependency to lang_enum.h to the makefile.

Also add lang_enum.h to the 'make clean' target!

Change-Id: I33c8ed0cd5c1d44dce02ac9285469c0e4feac00e
2019-07-20 10:06:12 -04:00
Franklin Wei
75fe15a06c puzzles: refactor rockbox frontend
Cleaned up a bit of copy-pasted code and added some useful comments.

Change-Id: I9a6f37acbeeda58b3ea8c65ee96230372400f323
2019-05-15 18:18:17 -04:00
Franklin Wei
992a12670e puzzles: update frontend for new upstream, misc. changes
The upstream code changed a little bit with regard to the request_keys()
API. Also, we save some bytes (especially on the c200v2) by compiling with
-ffunction-sections and -fdata-sections, which allows Net to fit once again.

Change-Id: I3ab30127169c73e4cd8996f0c12e1223ee18d79f
2018-04-24 19:06:30 -04:00
Franklin Wei
552a271c6f puzzles: remove redundant help content
It used to be that each puzzle had a complete copy of the entire
puzzles manual and the "quick help" text for every single puzzle. This
was obviously a waste, so now each puzzle only has the sections of the
manual that apply to it, saving about 100KB or so per puzzle. This
also has the added benefit of shrinking binary size enough to allow
full help support on the c200v2, which has been enabled.

Change-Id: I76c799635de058e4a48e0c18b79537857af7cf85
2017-06-03 13:45:07 -04:00
Franklin Wei
f15c117a8f puzzles: fix optimization flags
Change-Id: Ib0524fd4594e9524612eca0da54b3d13dc79b22c
2017-05-04 20:10:58 -04:00
Franklin Wei
4bc3bfe612 puzzles: simplify makefile
Change-Id: I14b4bda7e706e73d2d4475c9d536fbef9e2b9577
2017-05-02 18:33:25 -04:00
Franklin Wei
ecd7c72254 add rule for rbcompat.h
Change-Id: Icb7320f9233f2c121a8487d5b5c4cbcb483e9345
2017-04-30 18:33:55 -04:00
Franklin Wei
078d52c290 fix puzzles: round 4
Change-Id: Ibba738b8179c166f680dee0ce7536890fca1c0e4
2017-04-30 18:33:55 -04:00
Franklin Wei
36aedfd165 fix puzzles... round 3
Change-Id: I014ace22f0b83d8e407bd46df361532207f984bc
2017-04-30 16:32:57 -04:00
Franklin Wei
28fef2e415 Fix puzzles... again
Change-Id: I34dd8673ebcbc7fcd55681175d0e18c8bbc5fe6c
2017-04-30 13:57:13 -04:00
Franklin Wei
881746789a puzzles: refactor and resync with upstream
This brings puzzles up-to-date with upstream revision
2d333750272c3967cfd5cd3677572cddeaad5932, though certain changes made
by me, including cursor-only Untangle and some compilation fixes
remain. Upstream code has been moved to its separate subdirectory and
future syncs can be done by simply copying over the new sources.

Change-Id: Ia6506ca5f78c3627165ea6791d38db414ace0804
2017-04-29 18:24:42 -04:00
Franklin Wei
f483a07950 puzzles: fix makefile producing temporary files in the build directory (sorry!)
- thanks to Michael Sevakis for catching this

Change-Id: Ia02ba7a06a55bc0741df9ce2c21f868d7e0abdd4
2017-02-10 17:12:34 -05:00
Franklin Wei
abd75a17d1 puzzles: fix up makefile
- rewrote a bunch of repetitive rules with a pattern rule

Change-Id: I86a61a7ed8398f18789e5efaf4996d9eafd50651
2017-02-09 22:36:05 -05:00
Franklin Wei
1b882cb156 puzzles: change default optimization to -O2
Change-Id: I606df468f92f8d550827c122a9cfd5248866afdb
2017-01-16 20:54:37 +01:00
Franklin Wei
0bdb255a4e puzzles: fix building on c200v2
- disables Solo and Loopy

Change-Id: I3de15c0ad001683a4303950972af2f5988d438d0
2017-01-15 14:29:24 -05:00
Franklin Wei
d221ca6e5b puzzles: antialiased line drawing via Wu's algorithm and optional "shortcuts" for undo/redo
- line drawing should eventually be moved to xlcd, but for now it's very unportable code
- also fixes a minor issue with the configuration screens

Change-Id: I897f01b7210cbbec32665c2bc67920c965ea0bec
2017-01-15 14:29:24 -05:00
Franklin Wei
c1b913bb7d Revert "puzzles: antialiased line drawing and optional "shortcuts" for undo/redo"
This reverts commit 8e4429853d.

Change-Id: Id622d58ad4b3b9dd3313811c8a2f83202d21f5ee
2017-01-13 23:52:04 -05:00
Franklin Wei
8e4429853d puzzles: antialiased line drawing and optional "shortcuts" for undo/redo
- line drawing should eventually be moved to xlcd, but for now it's very nonportable code
- fixes a minor issue with the configuration screens

Change-Id: I897f01b7210cbbec32665c2bc67920c965ea0bec
2017-01-13 23:22:51 -05:00
Franklin Wei
31907283a4 puzzles: fix a few things
- old acos() function was broken, replaced with a call to atan2(); this fixes "Cube!"
- Makefile extended to support building "unfinished games", but not enabled
- a backdrop issue fixed in rockbox.c

Change-Id: I9393e958d43de32f4ccf18e1cb409f75c2e1ed3c
2017-01-04 20:36:04 -05:00
Franklin Wei
6e5f287606 Fixes and re-sync for puzzles
- Updates to latest upstream (7cae89fb4b22c305b3fd98b4e1be065ad527a9f7).
- Also fixes a bug relating to updating parts of the display.
- Adds some docs.

Change-Id: Idfcce66e0cf3c59e467bab42eafc161df2e495bb
2017-01-01 15:00:09 -05:00
Franklin Wei
1a6a8b52f7 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
2016-12-18 18:13:22 +01:00