diff options
Diffstat (limited to 'apps/recorder/sokoban.c')
-rw-r--r-- | apps/recorder/sokoban.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/apps/recorder/sokoban.c b/apps/recorder/sokoban.c index bec556054a..3e5d447ae9 100644 --- a/apps/recorder/sokoban.c +++ b/apps/recorder/sokoban.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include "button.h" | 27 | #include "button.h" |
28 | #include "kernel.h" | 28 | #include "kernel.h" |
29 | #include "menu.h" | 29 | #include "menu.h" |
30 | #include "screens.h" | ||
30 | 31 | ||
31 | #ifdef SIMULATOR | 32 | #ifdef SIMULATOR |
32 | #include <stdio.h> | 33 | #include <stdio.h> |
@@ -37,6 +38,10 @@ | |||
37 | #define SOKOBAN_TITLE_FONT 2 | 38 | #define SOKOBAN_TITLE_FONT 2 |
38 | #define NUM_LEVELS sizeof(levels)/320 | 39 | #define NUM_LEVELS sizeof(levels)/320 |
39 | 40 | ||
41 | static void load_level(int); | ||
42 | static void update_screen(void); | ||
43 | static bool sokoban_loop(void); | ||
44 | |||
40 | static char board[16][20]; | 45 | static char board[16][20]; |
41 | static int current_level=0; | 46 | static int current_level=0; |
42 | static int moves=0; | 47 | static int moves=0; |
@@ -1766,7 +1771,7 @@ static const char levels[][320] = { | |||
1766 | }; | 1771 | }; |
1767 | 1772 | ||
1768 | 1773 | ||
1769 | void load_level (int level_to_load) { | 1774 | static void load_level (int level_to_load) { |
1770 | int a = 0; | 1775 | int a = 0; |
1771 | int b = 0; | 1776 | int b = 0; |
1772 | int c = 0; | 1777 | int c = 0; |
@@ -1790,7 +1795,7 @@ void load_level (int level_to_load) { | |||
1790 | return; | 1795 | return; |
1791 | } | 1796 | } |
1792 | 1797 | ||
1793 | void update_screen(void) { | 1798 | static void update_screen(void) { |
1794 | int b = 0; | 1799 | int b = 0; |
1795 | int c = 0; | 1800 | int c = 0; |
1796 | char s[25]; | 1801 | char s[25]; |
@@ -1855,7 +1860,8 @@ void update_screen(void) { | |||
1855 | 1860 | ||
1856 | 1861 | ||
1857 | 1862 | ||
1858 | void sokoban_loop(void) { | 1863 | static bool sokoban_loop(void) |
1864 | { | ||
1859 | int ii = 0; | 1865 | int ii = 0; |
1860 | moves = 0; | 1866 | moves = 0; |
1861 | current_level = 0; | 1867 | current_level = 0; |
@@ -1868,7 +1874,7 @@ void sokoban_loop(void) { | |||
1868 | 1874 | ||
1869 | case BUTTON_OFF: | 1875 | case BUTTON_OFF: |
1870 | /* get out of here */ | 1876 | /* get out of here */ |
1871 | return; | 1877 | return false; |
1872 | 1878 | ||
1873 | case BUTTON_F3: | 1879 | case BUTTON_F3: |
1874 | /* increase level */ | 1880 | /* increase level */ |
@@ -2170,6 +2176,10 @@ void sokoban_loop(void) { | |||
2170 | row++; | 2176 | row++; |
2171 | break; | 2177 | break; |
2172 | 2178 | ||
2179 | case SYS_USB_CONNECTED: | ||
2180 | usb_screen(); | ||
2181 | return true; | ||
2182 | |||
2173 | default: | 2183 | default: |
2174 | idle = true; | 2184 | idle = true; |
2175 | break; | 2185 | break; |
@@ -2192,20 +2202,23 @@ void sokoban_loop(void) { | |||
2192 | lcd_invertrect(0,0,111,63); | 2202 | lcd_invertrect(0,0,111,63); |
2193 | lcd_update(); | 2203 | lcd_update(); |
2194 | if ( button_get(false) ) | 2204 | if ( button_get(false) ) |
2195 | return; | 2205 | return false; |
2196 | } | 2206 | } |
2197 | return; | 2207 | return false; |
2198 | } | 2208 | } |
2199 | load_level(current_level); | 2209 | load_level(current_level); |
2200 | lcd_clear_display(); | 2210 | lcd_clear_display(); |
2201 | update_screen(); | 2211 | update_screen(); |
2202 | } | 2212 | } |
2203 | } | 2213 | } |
2214 | |||
2215 | return false; | ||
2204 | } | 2216 | } |
2205 | 2217 | ||
2206 | 2218 | ||
2207 | Menu sokoban(void) | 2219 | bool sokoban(void) |
2208 | { | 2220 | { |
2221 | bool result; | ||
2209 | int w, h; | 2222 | int w, h; |
2210 | int len = strlen(SOKOBAN_TITLE); | 2223 | int len = strlen(SOKOBAN_TITLE); |
2211 | 2224 | ||
@@ -2240,9 +2253,9 @@ Menu sokoban(void) | |||
2240 | lcd_update(); | 2253 | lcd_update(); |
2241 | sleep(HZ*2); | 2254 | sleep(HZ*2); |
2242 | lcd_clear_display(); | 2255 | lcd_clear_display(); |
2243 | sokoban_loop(); | 2256 | result = sokoban_loop(); |
2244 | 2257 | ||
2245 | return MENU_OK; | 2258 | return result; |
2246 | } | 2259 | } |
2247 | 2260 | ||
2248 | #endif | 2261 | #endif |