summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorJonas Häggqvist <rasher@rasher.dk>2007-10-07 23:01:26 +0000
committerJonas Häggqvist <rasher@rasher.dk>2007-10-07 23:01:26 +0000
commit52336cdeb363c0e83455850052243928627c4e58 (patch)
treed1a41a917bf1842eb88d3b5c1a0cf356c7611ea4 /apps/plugins
parent59f523ce6632128b085350a36f984db211ff2ddb (diff)
downloadrockbox-52336cdeb363c0e83455850052243928627c4e58.tar.gz
rockbox-52336cdeb363c0e83455850052243928627c4e58.zip
Add instructions on all targets. Somewhat hackish, I'm afraid, but works reasonably well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15030 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/robotfindskitten.c60
1 files changed, 35 insertions, 25 deletions
diff --git a/apps/plugins/robotfindskitten.c b/apps/plugins/robotfindskitten.c
index 9fabfcb54f..e08c99c0cc 100644
--- a/apps/plugins/robotfindskitten.c
+++ b/apps/plugins/robotfindskitten.c
@@ -411,32 +411,42 @@ static void play_animation(int input)
411 411
412static void instructions() 412static void instructions()
413{ 413{
414 char buf[X_MAX + 5]; 414 unsigned short row = 0, col = 0, len = 0, i = 0;
415 rb->snprintf(buf, sizeof(buf), "robotfindskitten %s", RFK_VERSION); 415#define WORDS (sizeof instructions / sizeof (char*))
416 /* 416 static char* instructions[] = {
417 * fixme: Find a nice way of portably putting a lot of 417#if 0
418 * text on the screen. Fixing it for all these sizes is just a horrible job 418 /* Not sure if we want to include this? */
419 */ 419 "robotfindskitten", RFK_VERSION, "", "",
420#if X_MAX >= 52 /* 320 pixels wide */ 420 "By", "the", "illustrious", "Leonard", "Richardson", "(C)", "1997,", "2000", "",
421 rb->lcd_putsxy(0,0, buf); 421 "Written", "originally", "for", "the", "Nerth", "Pork", "robotfindskitten", "contest", "", "",
422 rb->lcd_putsxy(0,SYSFONT_HEIGHT*1, "By the illustrious Leonard Richardson (C) 1997, 2000");
423 rb->lcd_putsxy(0,SYSFONT_HEIGHT*2, "Written originally for the Nerth Pork");
424 rb->lcd_putsxy(0,SYSFONT_HEIGHT*3, "robotfindskitten contest");
425 rb->lcd_putsxy(0,SYSFONT_HEIGHT*5, "In this game you are robot (#). Your job is to find");
426 rb->lcd_putsxy(0,SYSFONT_HEIGHT*6, "kitten. This task is complicated by the existence of");
427 rb->lcd_putsxy(0,SYSFONT_HEIGHT*7, "various things which are not kitten. Robot must");
428 rb->lcd_putsxy(0,SYSFONT_HEIGHT*8, "touch items to determine if they are kitten or not.");
429 rb->lcd_putsxy(0,SYSFONT_HEIGHT*9, "The game ends when robotfindskitten.");
430 rb->lcd_putsxy(0,SYSFONT_HEIGHT*11, "Press any key to start");
431 rb->lcd_update();
432 rb->button_get(true);
433#elif X_MAX >= 39 /* 240 pixels wide */
434#elif X_MAX >= 35 /* 220 pixels wide */
435#elif X_MAX >= 28 /* 176 pixels wide */
436#elif X_MAX >= 25 /* 160 pixels wide */
437#elif X_MAX >= 20 /* 128 pixels wide */
438#elif X_MAX >= 17 /* 112 pixels wide */
439#endif 422#endif
423 "In", "this", "game", "you", "are", "robot", "(#).", "Your", "job", "is", "to", "find", "kitten.", "This", "task", "is", "complicated", "by", "the", "existence", "of", "various", "things", "which", "are", "not", "kitten.", "Robot", "must", "touch", "items", "to", "determine", "if", "they", "are", "kitten", "or", "not.", "",
424 "The", "game", "ends", "when", "robotfindskitten.", "", "",
425 "Press", "any", "key", "to", "start",
426 };
427 for (i = 0; i < WORDS; i++) {
428 len = rb->strlen(instructions[i]);
429 /* Skip to next line if the current one can't fit the word */
430 if (col+len > X_MAX) {
431 col = 0;
432 row++;
433 }
434 /* .. or if the word is the empty string */
435 if (rb->strcmp(instructions[i], "") == 0) {
436 col = 0;
437 row++;
438 continue;
439 }
440 /* We filled the screen */
441 if (row > Y_MAX) {
442 row = 0;
443 pause();
444 rb->lcd_clear_display();
445 }
446 rb->lcd_putsxy(SYSFONT_WIDTH*col, row*SYSFONT_HEIGHT, instructions[i]);
447 col += len + 1;
448 }
449 pause();
440} 450}
441 451
442static void initialize_arrays() 452static void initialize_arrays()