rockbox/apps/plugins/puzzles
Aidan MacDonald d5a081cbd1 gui: Remove "enum list_wrap" from list action functions
Removing the "list_wrap" argument is actually pretty easy.
In practice, almost all lists are using LIST_WRAP_UNLESS_HELD
behavior so we can make that the default. A couple of lists
disable wraparound with LIST_WRAP_OFF; this is now achieved
by setting the list "wraparound" flag to false when setting
up the list. LIST_WRAP_ON was unused and is of questionable
value, so it has been removed entirely.

This makes list wraparound behavior a property of the list,
controlled solely by the "wraparound" flag. The result is a
simpler list API and implementation, without changing the
behavior of any lists.

Change-Id: Ib55d17519e6d92fc95ae17b84ab0aaf4233bcb5a
2022-10-05 11:22:55 -04:00
..
dummy add fake stdio.h 2017-04-30 19:13:13 -04:00
help puzzles: resync with upstream 2020-12-07 02:08:18 -05:00
src puzzles: resync with upstream 2020-12-07 02:08:18 -05:00
compress.c puzzles: silence some warnings 2018-04-24 19:06:30 -04:00
fonts.zip puzzles: dynamic text size via custom font pack 2017-07-17 16:58:13 -04:00
genhelp.sh puzzles: tooling to automate the resyncing process 2020-12-07 02:11:36 -05:00
help.h puzzles: update help text, make generation and testing cleaner 2018-04-24 19:06:30 -04:00
lz4tiny.c puzzles: update help text, make generation and testing cleaner 2018-04-24 19:06:30 -04:00
lz4tiny.h puzzles: compress extensive help text 2017-08-16 11:40:37 -04:00
puzzles.make build: Fix puzzles build due to missing dependency 2019-07-20 10:06:12 -04:00
rbassert.h puzzles: clean up error messages 2020-06-25 16:46:03 -04:00
rbcompat.h Work around DX90 compile error 2019-05-15 20:39:23 -04:00
rbmalloc.c puzzles: resync with upstream; add Loopy and Palisade, mouse mode 2017-11-21 19:29:45 -05:00
rbwrappers.c puzzles: misc. changes and sync with upstream 2017-08-23 14:22:09 -04:00
README.rockbox puzzles: update README 2020-06-25 16:53:22 -04:00
resync.sh puzzles: tooling to automate the resyncing process 2020-12-07 02:11:36 -05:00
rockbox.c gui: Remove "enum list_wrap" from list action functions 2022-10-05 11:22:55 -04:00
SOURCES puzzles: resync with upstream 2019-05-15 18:16:27 -04:00
SOURCES.games puzzles: update frontend for new upstream, misc. changes 2018-04-24 19:06:30 -04:00

Introduction
============

This is the readme for the Rockbox port of Simon Tatham's Portable
Puzzle Collection.

The upstream version used is subject to change, as it should be
relatively trivial to update it to a newer version. Simply copying the
upstream repo's contents into src/ and running genhelp.sh ought to do
it (watch out for API changes, though!).

Source structure
================

Most of the upstream files in src/ are essentially untouched, apart
from some minor adjustments to make them compile and run happily on
Rockbox. The majority of the rockbox-specific code is found in
rockbox.c, with some minor stuff in rbwrappers.c and rbmalloc.c.

NOTE: the build makefile (puzzles.make) automatically includes
`rbcompat.h` when compiling! Check there when things break.

Help feature
============

The Help feature is implemented by compiling each puzzle against a
compressed version of each puzzle's section from the upstream
documentation. These files are stored under help/, and are generated
by genhelp.sh from the puzzles.but file in the source
distribution. The compression is LZ4, implemented in lz4tiny.c (for
decompression on target), and compress.c (for generation). genhelp.sh
should be run whenever the documentation is changed.

Kudos to Simon (duh), and Frank, for telling me about it.

Franklin Wei (__builtin)

Changelog
=========

April 2017: Changes made to move upstream sources to a separate
subdirectory, where they are completely unmodified from the
original. Updating the upstream version is now as simple as copying a
fresh set of sources to src/. Several hacks were used to accomplish
this: a global include specified on the command line, and a directory
of dummy header files.

August 2017: Every game that can be played with only the cursor keys
is now functional.

October 2017: Added zoom feature.

March 2018: Added help styling. Changed from simple_viewer to
display_text for displaying help text. compress.c now does additional
processing on the help text, and also requires a slightly modified
halibut.

April 2018: Finished up the rest of the games. All work now! Surely
there's still bugs to fix, so stay tuned...

December 2018: Resync to 3ece3d6. Happy holidays!

May 2019: Resync to e2135d5.

June 2020: Resync to 9aa7b7c. Fixed really embarrassing bug in loading
saved games.