Apply FS #6702: More Sokoban Improvements.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13731 a1c6a512-1295-4272-9138-f99709370657
|
@ -42,7 +42,7 @@ plugins/*.pl
|
|||
plugins/Makefile
|
||||
plugins/plugin.lds
|
||||
plugins/snake2.levels
|
||||
plugins/sokoban.levels
|
||||
plugins/sokobanlevels.sok
|
||||
plugins/viewers.config
|
||||
plugins/SOURCES
|
||||
plugins/SUBDIRS
|
||||
|
|
|
@ -331,11 +331,13 @@ sokoban_tiles.14x14.bmp
|
|||
#elif (LCD_HEIGHT >= 144) && (LCD_WIDTH >= 212) || \
|
||||
(LCD_HEIGHT >= 169) && (LCD_WIDTH >= 180-4)
|
||||
sokoban_tiles.9x9.bmp
|
||||
#else
|
||||
/* LCD_HEIGHT >= 96~121 && LCD_WIDTH >= 152~120 */
|
||||
#elif (LCD_HEIGHT >= 96 && LCD_WIDTH >= 152) || \
|
||||
(LCD_HEIGHT >= 121 && LCD_WIDTH >= 120)
|
||||
sokoban_tiles.6x6.bmp
|
||||
#endif
|
||||
#elif LCD_DEPTH >= 2
|
||||
#elif LCD_DEPTH >= 2 && \
|
||||
((LCD_HEIGHT >= 96 && LCD_WIDTH >= 152) || \
|
||||
(LCD_HEIGHT >= 121 && LCD_WIDTH >= 120))
|
||||
sokoban_tiles.6x6x2.bmp
|
||||
#endif
|
||||
|
||||
|
|
1277
apps/plugins/sokobanlevels.sok
Normal file
|
@ -16,6 +16,7 @@ m3u,viewers/iriverify,-
|
|||
mid,viewers/midiplay,7
|
||||
rmi,viewers/midiplay,7
|
||||
rsp,viewers/searchengine,8
|
||||
sok,rocks/sokoban,1
|
||||
pgn,rocks/chessbox,1
|
||||
ss,rocks/sudoku,1
|
||||
wav,viewers/wav2wv,-
|
||||
|
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 665 B |
Before Width: | Height: | Size: 481 B After Width: | Height: | Size: 455 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 699 B |
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 615 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 875 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 888 B |
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 972 B |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
@ -5,44 +5,75 @@ The object of the game is to push boxes into their correct position in a
|
|||
crowded warehouse with a minimal number of pushes and moves. The boxes
|
||||
can only be pushed, never pulled, and only one can be pushed at a time.
|
||||
|
||||
Sokoban may be used as a viewer for viewing saved solutions and playing
|
||||
external level sets with the \fname{.sok} extension. Level sets should be in
|
||||
the standard Sokoban text format or RLE (Run Length Encoded). For more
|
||||
information about the level format, see
|
||||
\url{http://sokobano.de/wiki/index.php?title=Level_format}
|
||||
|
||||
\begin{table}
|
||||
\begin{btnmap}{}{}
|
||||
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,SANSA_E200_PAD}
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,GIGABEAT_PAD,SANSA_E200_PAD}
|
||||
{\ButtonUp, \ButtonDown,}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu, \ButtonPlay,}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonScrollUp, \ButtonScrollDown,}
|
||||
\ButtonLeft, \ButtonRight
|
||||
& Move the ``sokoban'' up, down, left or right\\
|
||||
\opt{RECORDER_PAD}{\ButtonFOne}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonLeft}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonRec}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD}{\ButtonSelect+\ButtonLeft}
|
||||
\opt{IAUDIO_X5_PAD}{\ButtonPlay+\ButtonDown}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollDown}
|
||||
& Back to previous level \\
|
||||
\opt{RECORDER_PAD}{\ButtonFTwo}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonRight}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonSelect}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
|
||||
\opt{IAUDIO_X5_PAD,SANSA_E200_PAD}{\ButtonRec}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonFF}
|
||||
& Restart level \\
|
||||
\opt{RECORDER_PAD}{\ButtonFThree}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonUp}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD,SANSA_E200_PAD}{\ButtonSelect+\ButtonRight}
|
||||
\opt{IAUDIO_X5_PAD}{\ButtonPlay+\ButtonUp}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollUp}
|
||||
& Go to next level \\
|
||||
\opt{RECORDER_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD}{\ButtonSelect}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonRew}
|
||||
\opt{SANSA_E200_PAD}{\ButtonUp}
|
||||
& Undo last movement \\
|
||||
\opt{RECORDER_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOff}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonMenu}
|
||||
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,SANSA_E200_PAD}{\ButtonPower}
|
||||
& Exit sokoban \\
|
||||
\opt{IAUDIO_X5_PAD,IRIVER_H10_PAD,GIGABEAT_PAD,SANSA_E200_PAD}{\ButtonPower}
|
||||
& Menu \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD}{\ButtonOn}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonRec}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD,GIGABEAT_PAD,SANSA_E200_PAD}{\ButtonSelect}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonRew}
|
||||
& Undo last movement \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD}{\ButtonPlay}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonDown}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonMode}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonPlay}
|
||||
\opt{IAUDIO_X5_PAD}{n/a}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonFF}
|
||||
\opt{GIGABEAT_PAD}{\ButtonA}
|
||||
\opt{SANSA_E200_PAD}{\ButtonRec}
|
||||
& Redo previously undone move \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD}{\ButtonFOne}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonLeft}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn+\ButtonDown}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonLeft}
|
||||
\opt{IAUDIO_X5_PAD}{\ButtonRec}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollDown}
|
||||
\opt{GIGABEAT_PAD}{\ButtonVolDown}
|
||||
\opt{SANSA_E200_PAD}{\ButtonSelect+\ButtonDown}
|
||||
& Back to previous level \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD}{\ButtonFTwo}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonUp}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD,IAUDIO_X5_PAD}{n/a}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonRight}
|
||||
\opt{GIGABEAT_PAD}{\ButtonMenu}
|
||||
\opt{SANSA_E200_PAD}{\ButtonSelect+\ButtonRight}
|
||||
& Restart level \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD}{\ButtonFThree}
|
||||
\opt{ONDIO_PAD}{\ButtonMenu+\ButtonRight}
|
||||
\opt{IRIVER_H100_PAD,IRIVER_H300_PAD}{\ButtonOn+\ButtonUp}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonSelect+\ButtonRight}
|
||||
\opt{IAUDIO_X5_PAD}{\ButtonPlay}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonPlay+\ButtonScrollUp}
|
||||
\opt{GIGABEAT_PAD}{\ButtonVolUp}
|
||||
\opt{SANSA_E200_PAD}{\ButtonSelect+\ButtonUp}
|
||||
& Go to next level \\
|
||||
\opt{RECORDER_PAD,ARCHOS_AV300_PAD,ONDIO_PAD,IRIVER_H100_PAD,IRIVER_H300_PAD,IAUDIO_X5_PAD,GIGABEAT_PAD,SANSA_E200_PAD}
|
||||
{\ButtonUp/\ButtonDown,}
|
||||
\opt{IPOD_4G_PAD,IPOD_3G_PAD}{\ButtonMenu/\ButtonPlay,}
|
||||
\opt{IRIVER_H10_PAD}{\ButtonScrollUp/\ButtonScrollDown,}
|
||||
& Increase/decrease solution playback speed
|
||||
\end{btnmap}
|
||||
\end{table}
|
||||
|
||||
Some places where can you can find level sets:
|
||||
\begin{itemize}
|
||||
\item \url{http://www.sourcecode.se/sokoban/levels.php}
|
||||
\item \url{http://sokobano.de/en/levels.php}
|
||||
\end{itemize}
|
||||
|
|
|
@ -329,7 +329,7 @@ STOP
|
|||
`cp $ROOT/apps/tagnavi.config .rockbox/`;
|
||||
|
||||
if($bitmap) {
|
||||
`cp $ROOT/apps/plugins/sokoban.levels .rockbox/rocks/`; # sokoban levels
|
||||
`cp $ROOT/apps/plugins/sokobanlevels.sok .rockbox/rocks/`; # sokoban levels
|
||||
`cp $ROOT/apps/plugins/snake2.levels .rockbox/rocks/`; # snake2 levels
|
||||
}
|
||||
|
||||
|
|