summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/rockbox.c (follow)
Commit message (Collapse)AuthorAge
* puzzles: refactor rockbox frontendFranklin Wei2019-05-15
| | | | | | Cleaned up a bit of copy-pasted code and added some useful comments. Change-Id: I9a6f37acbeeda58b3ea8c65ee96230372400f323
* puzzles: resync with upstreamFranklin Wei2018-12-21
| | | | | | | | | | This brings the code to upstream commit 3ece3d6 (I've made my own Rockbox- specific changes on top of that). Changes include using C99 `bool' throughout, and minor logic fixes for some puzzles. Change-Id: Ie823e73ae49a8ee1de411d6d406df2ba835af541
* puzzles: minor nitpicks to fbb6a2fFranklin Wei2018-06-12
| | | | | | Just some whitespace changes to maintain stylistic consistency. Change-Id: I50b5d52db2795cfcb4155bdffbfb80c1c3773112
* puzzles: fix typo introduced by fbb6a2fFranklin Wei2018-06-12
| | | | | | | | When zoomed in, the original commit made a mono bitmap (a.k.a. text) always have the red component set to 255. This would cause drawn text to always be red. Fixed. Change-Id: Iec06256a3a783948c60c70557de042b375224448
* Agptek Rocker: Build pluginsMarcin Bukat2018-06-12
| | | | | | Patch provided by Aapo Tahkola. Change-Id: I37a42a950d78d6b8aa3927ec7aeb30030f7be7a5
* puzzles: update frontend for new upstream, misc. changesFranklin Wei2018-04-24
| | | | | | | | 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
* puzzles: silence some warningsFranklin Wei2018-04-24
| | | | Change-Id: Id6fd9d8dd3021f5e2cb93565d7e419aaf07f9af0
* puzzles: save some bytesFranklin Wei2018-04-17
| | | | | | | | | This should cut just enough size off the binary to let Net still compile for the c200v2. This is probably close to the last time I'll be able to do this; I'm already resorting to dirty hacks like writing super terse error messages. Change-Id: I43344b9a601696d7ca56fc02af4a611fd9d1a150
* puzzles: enable all the remaining gamesFranklin Wei2018-04-17
| | | | | | | | They all work now :). I merged in part of Chris Boyle's Android port of Puzzles to give the front end a way to know what keys the back end needs. This also re-syncs to the latest upstream sources. Change-Id: Ie0409bbb32f617ae5abf4f81be3b45d1552db9bb
* puzzles: add formatting to help viewerFranklin Wei2018-03-17
| | | | | | | | The help text is now processed to generate a style array to pass to the display_text library in addition to the text itself. The help text is still compressed using LZ4, and still fits on the c200v2. Change-Id: I7a3a664f90f67a1a018956c72d2b62d92b8ffd17
* puzzles: fix off-by-one in blitter clippingFranklin Wei2017-11-24
| | | | | | Nobody to blame except myself for this one... Change-Id: I8446b564c3c060411c46675e9baac1c72437c39a
* puzzles: polish mouse modeFranklin Wei2017-11-24
| | | | | | Reduces lag when dragging. Also throws some comments in. Change-Id: Ibd0d95e94200ae6de8258ce8d2e001c931161385
* puzzles: fix copy-paste typoFranklin Wei2017-11-24
| | | | Change-Id: I09d065574a02a541c43c1a78d92e50a80b5e2ae0
* puzzles: resync with upstream; add Loopy and Palisade, mouse modeFranklin Wei2017-11-21
| | | | | | | | | | | | This brings a various small changes to the drawing and input code, as well as a brand new "mouse mode", where input goes to a virtual mouse cursor. Only Loopy has this mouse mode enabled by default, while other games have it hidden away under the debug menu. Some changes by me to Palisade were required to make it playable; those are included here as well. Right now, sgt-net is pushing the c200v2's upper limit on size and may have to be dropped in a future commit. Change-Id: I495d2a2125462c2985aec1ffbc54bbe3fe5133bd
* puzzles: fix blitting when zoomedFranklin Wei2017-11-04
| | | | | | | | Both blitter_save() and blitter_load() functioned incorrectly when zoomed in -- blitter_save() would copy from the wrong location, and blitter_load() would ignore the y-coordinate of the destination. Change-Id: I7c85debf5953575f72c4a81e3dbcf514202c3aed
* puzzles: clarify code and documentationFranklin Wei2017-11-04
| | | | | | | This adds no functionality, but instead cleans up the source and adds some more substantial documentation. Change-Id: I77328c171a61db7729bdf928ba094cfbed4ec0dd
* puzzles: fix title drawingFranklin Wei2017-11-04
| | | | | | | | | | This fixes two separate bugs: The first was that the drawmode was not reliably set when drawing the title, occasionally leading to a black rectangle where the title should be; the second that the title bar's space wasn't being cleared before drawing, leading to artifacts when the length of the title string changed. Change-Id: I3859125b14d568e1098b095ab134645a504b2d45
* puzzles: add an interaction mode to the "Zoom In" featureFranklin Wei2017-10-30
| | | | | | | This makes it possible to play the game while zoomed in. Read the manual entry if you want to know more. Change-Id: Iff8bab12f92ebd2798047c25d1fde7740aa543ce
* puzzles: improve zoom renderingFranklin Wei2017-10-29
| | | | | | | | This adds colored font rendering, as well as a workaround for font loading while zoomed. Additionally, the frontend has been modified to match the new upstream API. Change-Id: I8c3fe57e6854f176485bf792cf4778cd54a21674
* puzzles: fix clipping and 24-bit handlingFranklin Wei2017-10-27
| | | | | | Should fix the build. Change-Id: I68f06702570389c2c9d0d76acc064c324cac457b
* puzzles: add "Zoom In" option to improve usabilityFranklin Wei2017-10-27
| | | | | | | | | | | | This adds a "Zoom In" option to the pause menu of each puzzle, which displays the puzzle at triple size (subject to change). This should help with tiny screens, modulo memory concerns associated with allocating the temporary framebuffer to which drawing operations are redirected. Coincidentally, there's an upstream bug with Map that causes the cursor's positioning to be incorrectly displayed when zoomed. Change-Id: Ic8b7c2942acf558e295f4271dd7dc458cd336895
* puzzles: adapt frontend to upstream changesFranklin Wei2017-10-23
| | | | Change-Id: Idd911ac4ac6c2efa3c6b064be6058979d7a15447
* Harmonize plugin keymapsFranklin Wei2017-09-30
| | | | | | | | Aims to provide a lib/keymaps.h for plugins needing simple button functionality beyond that provided by PLA. Currently used by puzzles and xworld. Change-Id: Icb3493aaf176d401762de834dd48fc76a3824c5a
* puzzles: remove old combined build codeFranklin Wei2017-08-23
| | | | | | We don't really need it anymore. Change-Id: I7c8149faa6b80807ca718b73483bdb2e41830cbd
* puzzles: various useless tweaksFranklin Wei2017-08-16
| | | | Change-Id: Ibf9769f99d61581b184d0ffa4ef0614eb976f0e8
* puzzles: enable long-press in MapFranklin Wei2017-08-16
| | | | | | This allows for stippling regions. Change-Id: If8f271b66f6f350c843d6669918ea39712acd818
* puzzles: compress extensive help textFranklin Wei2017-08-16
| | | | | | | | | | | This is only really needed to save a few bytes on the c200v2, but since it adds negligible overhead, so it's implemented for all targets. A stripped down version of the LZ4 reference implementation is found in lz4tiny.c. Change-Id: Ib914ba71c84e04da282328662c752e533912e197
* puzzles: cut size for c200v2Franklin Wei2017-08-09
| | | | | | | | - font caching is disabled - font table is dynamically allocated - side effect: tlsf isn't reset between runs anymore, memory leaks will have a bigger impact Change-Id: I0b25c22665d956895e8007883d522256010d04ab
* puzzles: new input scheme for Mines and MagnetsFranklin Wei2017-07-27
| | | | Both these puzzles now have long press mapped to spacebar.
* puzzles: polish up the config menusFranklin Wei2017-07-27
|
* puzzles: tweak text positioningFranklin Wei2017-07-27
|
* puzzles: font cachingFranklin Wei2017-07-27
| | | | | | This lets puzzles remember which fonts were loaded previously so they can be preloaded when the puzzle is started (and the disk is spinning), instead of while the game is being played.
* puzzles: add number chooser for integer settingsFranklin Wei2017-07-27
| | | | Sure beats typing on the virtual keyboard.
* puzzles: update debug menuFranklin Wei2017-07-27
| | | | | Add an option to visualize polygon rendering to aid in diagnosing artifacts.
* puzzles: dynamic text size via custom font packFranklin Wei2017-07-17
| | | | | | | | | | | | | | | | | Up to now, we'd just ignore whatever font size the puzzle asked for, and instead just go with either the UI font or system font regardless of their size, which led to some horrible-looking puzzles. This patch adds the ability to automatically load fonts of the proper size when they are available, which makes text-based puzzles such as Pattern and Slant function correctly with any UI font. The font pack, which should be extracted to the system-wide fonts directory consists of 3 small bitmap fonts from 7px to 10px and then anti-aliased Deja Vu fonts from 10px to 36px. It is available in the source tree (apps/plugins/puzzles/fonts.zip), or from <http://download.rockbox.org/useful/sgt-fonts.zip>. Change-Id: I05c8fe7bd6d867e14de9b941deb91e8c642ee4a8
* puzzles: allow using hints in FifteenFranklin Wei2017-07-12
| | | | | | This maps the select button to the "h" key for Fifteen only. Change-Id: I7a5a61cec46e86254218fabfb191974f98c12319
* puzzles: remove redundant help contentFranklin Wei2017-06-03
| | | | | | | | | | | 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
* puzzles: correct drawmode for textFranklin Wei2017-06-02
| | | | | | | DRMODE_FG should be used instead of DRMODE_COMPLEMENT to allow text to be drawn in color, benefitting puzzles such as Slant and Pattern. Change-Id: I292216490a58344cb93dc5c2ec1780229735313a
* puzzles: clarify target-specific macrosFranklin Wei2017-05-21
| | | | Change-Id: I1f68f25a557bb2daa5e83a6d6f02711abeec5165
* puzzles: fix Bridges crash on Clip ZipFranklin Wei2017-05-18
| | | | | | - small screen could lead to invalid viewport coordinates Change-Id: I1f2a323554e4ed31f250218220b464a02bffa308
* puzzles: fix buildingFranklin Wei2017-05-17
| | | | | | | - disables help on c200v2 - renames conflicting function Change-Id: I0c4ff1bb40e7e3cafd0170090f22b80bf0656741
* puzzles: full help systemFranklin Wei2017-05-16
| | | | | | | | | - embeds the upstream halibut documentation for plugin use - currently every plugin has a copy of the help text, but in the future a centralized system using overlays might be better Change-Id: Idb6eb9accc2fa786a4c6bc2b704e7cf5fd3f78dd
* puzzles: remember the previous preset when selectingFranklin Wei2017-05-04
| | | | Change-Id: I22c84257a3aa9b19bf5e94f9de51204bbade08c5
* Fix puzzles... againFranklin Wei2017-04-30
| | | | Change-Id: I34dd8673ebcbc7fcd55681175d0e18c8bbc5fe6c
* puzzles: refactor and resync with upstreamFranklin Wei2017-04-29
| | | | | | | | | | 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
* puzzles: fix building on c200v2Franklin Wei2017-01-15
| | | | | | - disables Solo and Loopy Change-Id: I3de15c0ad001683a4303950972af2f5988d438d0
* puzzles: antialiased line drawing via Wu's algorithm and optional ↵Franklin Wei2017-01-15
| | | | | | | | | "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
* Revert "puzzles: antialiased line drawing and optional "shortcuts" for ↵Franklin Wei2017-01-13
| | | | | | | | undo/redo" This reverts commit 8e4429853d1ac024ac2b8069636cc210cf5bab1b. Change-Id: Id622d58ad4b3b9dd3313811c8a2f83202d21f5ee
* puzzles: fix configuration menu (again!)Franklin Wei2017-01-13
| | | | Change-Id: I440f3cea1bbeb3e7bda4aebefaaece3e8f3d44fd
* puzzles: antialiased line drawing and optional "shortcuts" for undo/redoFranklin Wei2017-01-13
| | | | | | | - 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