diff options
Diffstat (limited to 'apps/plugins/puzzles/help.c')
| -rw-r--r-- | apps/plugins/puzzles/help.c | 47 |
1 files changed, 4 insertions, 43 deletions
diff --git a/apps/plugins/puzzles/help.c b/apps/plugins/puzzles/help.c index 4a2560e..c45f50e 100644 --- a/apps/plugins/puzzles/help.c +++ b/apps/plugins/puzzles/help.c @@ -3,51 +3,12 @@ void full_help(const char *name) { - int ch_num = -1; - - /* dirty hack */ - if(!strcmp(name, "Train Tracks")) - name = "Tracks"; - - /* search the help text for a chapter with this name */ - for(int ch = 0; ch < help_numchapters; ++ch) - { - char *str = help_text + help_chapteroffsets[ch]; - char *ptr = strchr(str, ':') + 1; - const char *namep = name; - if(*ptr++ != ' ') - continue; - - while(*ptr == *namep && *ptr && *namep) - { - ptr++; - namep++; - } - if(*namep == '\0' && (*ptr == '\n' || *ptr == ' ')) /* full match */ - { - ch_num = ch; - break; - } - } - if(ch_num < 0) - { - rb->splashf(HZ * 2, "No topic found for `%s' (REPORT ME!)", name); - return; - } - char *buf = smalloc(help_maxlen + 1); - rb->memset(buf, 0, help_maxlen + 1); - if(ch_num < help_numchapters - 1) - { - /* safe to look ahead */ - memcpy(buf, help_text + help_chapteroffsets[ch_num], help_chapteroffsets[ch_num + 1] - help_chapteroffsets[ch_num]); - } - else - rb->strlcpy(buf, help_text + help_chapteroffsets[ch_num], help_maxlen + 1); + unsigned old_bg = rb->lcd_get_background(); rb->lcd_set_foreground(LCD_WHITE); - unsigned old_bg = rb->lcd_get_background(); rb->lcd_set_background(LCD_BLACK); - view_text(name, buf); + + view_text(name, help_text); + rb->lcd_set_background(old_bg); - sfree(buf); } |