diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-10-08 09:47:40 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-10-11 16:37:17 -0400 |
commit | 2a471e288c16b91a7186a60b3fb84dd55a494c7a (patch) | |
tree | 3e746212c5fa69b59f61d19b6e29d11aa8a5e31b /apps/plugins/jewels.c | |
parent | 5efaa9ef8073bb216e3dcdbb4476f2fa7c672b76 (diff) | |
download | rockbox-2a471e288c16b91a7186a60b3fb84dd55a494c7a.tar.gz rockbox-2a471e288c16b91a7186a60b3fb84dd55a494c7a.zip |
New port: AIGO EROS Q / EROS K
The Q and K have a slightly different case, but the hardware under the
shell is completely identical.
These models are rebadged versions:
* Hifiwalker H2 (== Q)
* AGPTek H3 (== K)
* Surfans F20 (== K)
Other notes:
* Significant improvements in the shared Hiby-platform launcher/loader
* SD card can theoretically be hot-swapped now
* Support external USB mass storage!
* Some consolidation of Hiby-platform targets
* Some consolidation of plugin keymaps
Todo/known issues:
* Keymaps need to be gone over properly
* Convert to HAVE_SCROLLWHEEL?
Change-Id: I5a8a4f22c38a5b69392ca7c0a8ad8c4e07d9523c
Diffstat (limited to 'apps/plugins/jewels.c')
-rw-r--r-- | apps/plugins/jewels.c | 71 |
1 files changed, 26 insertions, 45 deletions
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 64a15ff4fc..b58c47dd12 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c | |||
@@ -347,27 +347,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
347 | #define JEWELS_CANCEL BUTTON_POWER | 347 | #define JEWELS_CANCEL BUTTON_POWER |
348 | #define HK_CANCEL "Power" | 348 | #define HK_CANCEL "Power" |
349 | 349 | ||
350 | #elif CONFIG_KEYPAD == XDUOO_X3_PAD | 350 | #elif CONFIG_KEYPAD == XDUOO_X3_PAD || CONFIG_KEYPAD == XDUOO_X3II_PAD || CONFIG_KEYPAD == XDUOO_X20_PAD |
351 | #define JEWELS_UP BUTTON_HOME | ||
352 | #define JEWELS_DOWN BUTTON_OPTION | ||
353 | #define JEWELS_LEFT BUTTON_PREV | ||
354 | #define JEWELS_RIGHT BUTTON_NEXT | ||
355 | #define JEWELS_SELECT BUTTON_PLAY | ||
356 | #define JEWELS_CANCEL BUTTON_POWER | ||
357 | #define HK_SELECT "PLAY" | ||
358 | #define HK_CANCEL "POWER" | ||
359 | |||
360 | #elif CONFIG_KEYPAD == XDUOO_X3II_PAD | ||
361 | #define JEWELS_UP BUTTON_HOME | ||
362 | #define JEWELS_DOWN BUTTON_OPTION | ||
363 | #define JEWELS_LEFT BUTTON_PREV | ||
364 | #define JEWELS_RIGHT BUTTON_NEXT | ||
365 | #define JEWELS_SELECT BUTTON_PLAY | ||
366 | #define JEWELS_CANCEL BUTTON_POWER | ||
367 | #define HK_SELECT "PLAY" | ||
368 | #define HK_CANCEL "POWER" | ||
369 | |||
370 | #elif CONFIG_KEYPAD == XDUOO_X20_PAD | ||
371 | #define JEWELS_UP BUTTON_HOME | 351 | #define JEWELS_UP BUTTON_HOME |
372 | #define JEWELS_DOWN BUTTON_OPTION | 352 | #define JEWELS_DOWN BUTTON_OPTION |
373 | #define JEWELS_LEFT BUTTON_PREV | 353 | #define JEWELS_LEFT BUTTON_PREV |
@@ -387,7 +367,7 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
387 | #define HK_SELECT "PLAY" | 367 | #define HK_SELECT "PLAY" |
388 | #define HK_CANCEL "POWER" | 368 | #define HK_CANCEL "POWER" |
389 | 369 | ||
390 | #elif CONFIG_KEYPAD == IHIFI_770_PAD | 370 | #elif CONFIG_KEYPAD == IHIFI_770_PAD || CONFIG_KEYPAD == IHIFI_800_PAD |
391 | #define JEWELS_UP BUTTON_PREV | 371 | #define JEWELS_UP BUTTON_PREV |
392 | #define JEWELS_DOWN BUTTON_NEXT | 372 | #define JEWELS_DOWN BUTTON_NEXT |
393 | #define JEWELS_LEFT BUTTON_HOME | 373 | #define JEWELS_LEFT BUTTON_HOME |
@@ -397,15 +377,16 @@ CONFIG_KEYPAD == MROBE500_PAD | |||
397 | #define HK_SELECT "PLAY" | 377 | #define HK_SELECT "PLAY" |
398 | #define HK_CANCEL "POWER" | 378 | #define HK_CANCEL "POWER" |
399 | 379 | ||
400 | #elif CONFIG_KEYPAD == IHIFI_800_PAD | 380 | #elif CONFIG_KEYPAD == EROSQ_PAD |
401 | #define JEWELS_UP BUTTON_PREV | 381 | #define JEWELS_UP BUTTON_PREV |
402 | #define JEWELS_DOWN BUTTON_NEXT | 382 | #define JEWELS_DOWN BUTTON_NEXT |
403 | #define JEWELS_LEFT BUTTON_HOME | 383 | #define JEWELS_LEFT BUTTON_SCROLL_BACK |
404 | #define JEWELS_RIGHT BUTTON_VOL_DOWN | 384 | #define JEWELS_RIGHT BUTTON_SCROLL_FWD |
405 | #define JEWELS_SELECT BUTTON_PLAY | 385 | #define JEWELS_SELECT BUTTON_PLAY |
406 | #define JEWELS_CANCEL BUTTON_POWER | 386 | #define JEWELS_CANCEL BUTTON_BACK |
407 | #define HK_SELECT "PLAY" | 387 | #define HK_SELECT "PLAY" |
408 | #define HK_CANCEL "POWER" | 388 | #define HK_CANCEL "BACK" |
389 | |||
409 | 390 | ||
410 | #else | 391 | #else |
411 | #error No keymap defined! | 392 | #error No keymap defined! |
@@ -662,14 +643,14 @@ static void jewels_drawboard(struct game_context* bj) { | |||
662 | TILE_WIDTH, TILE_HEIGHT); | 643 | TILE_WIDTH, TILE_HEIGHT); |
663 | rb->lcd_bitmap_transparent_part(jewels, | 644 | rb->lcd_bitmap_transparent_part(jewels, |
664 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), | 645 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), |
665 | STRIDE( SCREEN_MAIN, | 646 | STRIDE( SCREEN_MAIN, |
666 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 647 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
667 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, | 648 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, |
668 | TILE_WIDTH, TILE_HEIGHT); | 649 | TILE_WIDTH, TILE_HEIGHT); |
669 | #else | 650 | #else |
670 | rb->lcd_bitmap_part(jewels, | 651 | rb->lcd_bitmap_part(jewels, |
671 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), | 652 | 0, TILE_HEIGHT*(bj->playboard[i+1][j].type), |
672 | STRIDE( SCREEN_MAIN, | 653 | STRIDE( SCREEN_MAIN, |
673 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 654 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
674 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, | 655 | j*TILE_WIDTH, i*TILE_HEIGHT+YOFS, |
675 | TILE_WIDTH, TILE_HEIGHT); | 656 | TILE_WIDTH, TILE_HEIGHT); |
@@ -685,7 +666,7 @@ static void jewels_drawboard(struct game_context* bj) { | |||
685 | 666 | ||
686 | rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, 18); | 667 | rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, 18); |
687 | rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, LCD_HEIGHT-10); | 668 | rb->lcd_hline(BJ_WIDTH*TILE_WIDTH, LCD_WIDTH-1, LCD_HEIGHT-10); |
688 | 669 | ||
689 | /* draw progress bar */ | 670 | /* draw progress bar */ |
690 | #ifdef HAVE_LCD_COLOR | 671 | #ifdef HAVE_LCD_COLOR |
691 | rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); | 672 | rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); |
@@ -708,7 +689,7 @@ static void jewels_drawboard(struct game_context* bj) { | |||
708 | (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2, | 689 | (LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2, |
709 | ((LCD_HEIGHT-10)-18)*tempscore/size+1); | 690 | ((LCD_HEIGHT-10)-18)*tempscore/size+1); |
710 | #endif | 691 | #endif |
711 | 692 | ||
712 | /* print text */ | 693 | /* print text */ |
713 | rb->lcd_getstringsize(title, &w, &h); | 694 | rb->lcd_getstringsize(title, &w, &h); |
714 | rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title); | 695 | rb->lcd_putsxy(LCD_WIDTH-(LCD_WIDTH-BJ_WIDTH*TILE_WIDTH)/2-w/2, 1, title); |
@@ -730,7 +711,7 @@ static void jewels_drawboard(struct game_context* bj) { | |||
730 | rb->lcd_hline(0, LCD_WIDTH-1, 8*TILE_HEIGHT+YOFS); | 711 | rb->lcd_hline(0, LCD_WIDTH-1, 8*TILE_HEIGHT+YOFS); |
731 | rb->lcd_hline(0, LCD_WIDTH-1, LCD_HEIGHT-14); | 712 | rb->lcd_hline(0, LCD_WIDTH-1, LCD_HEIGHT-14); |
732 | rb->lcd_vline(LCD_WIDTH/2, LCD_HEIGHT-14, LCD_HEIGHT-1); | 713 | rb->lcd_vline(LCD_WIDTH/2, LCD_HEIGHT-14, LCD_HEIGHT-1); |
733 | 714 | ||
734 | /* draw progress bar */ | 715 | /* draw progress bar */ |
735 | #ifdef HAVE_LCD_COLOR | 716 | #ifdef HAVE_LCD_COLOR |
736 | rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); | 717 | rb->lcd_set_foreground(LCD_RGBPACK(104, 63, 63)); |
@@ -751,10 +732,10 @@ static void jewels_drawboard(struct game_context* bj) { | |||
751 | LCD_WIDTH*tempscore/size+1, | 732 | LCD_WIDTH*tempscore/size+1, |
752 | (LCD_HEIGHT-14-(8*TILE_HEIGHT+YOFS))/2); | 733 | (LCD_HEIGHT-14-(8*TILE_HEIGHT+YOFS))/2); |
753 | #endif | 734 | #endif |
754 | 735 | ||
755 | /* print text */ | 736 | /* print text */ |
756 | rb->lcd_putsxyf(1, LCD_HEIGHT-10, "%s %d", title, bj->level); | 737 | rb->lcd_putsxyf(1, LCD_HEIGHT-10, "%s %d", title, bj->level); |
757 | 738 | ||
758 | if (bj->type == GAME_TYPE_NORMAL) { | 739 | if (bj->type == GAME_TYPE_NORMAL) { |
759 | rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); | 740 | rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); |
760 | rb->lcd_getstringsize(str, &w, &h); | 741 | rb->lcd_getstringsize(str, &w, &h); |
@@ -796,7 +777,7 @@ static void jewels_drawboard(struct game_context* bj) { | |||
796 | /* print text */ | 777 | /* print text */ |
797 | rb->lcd_putsxyf(1, LCD_HEIGHT-(LCD_HEIGHT-(8*TILE_HEIGHT+YOFS))/2-3,"%s %d", | 778 | rb->lcd_putsxyf(1, LCD_HEIGHT-(LCD_HEIGHT-(8*TILE_HEIGHT+YOFS))/2-3,"%s %d", |
798 | title, bj->level); | 779 | title, bj->level); |
799 | 780 | ||
800 | if (bj->type == GAME_TYPE_NORMAL) { | 781 | if (bj->type == GAME_TYPE_NORMAL) { |
801 | rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); | 782 | rb->snprintf(str, 6, "%d", (bj->level-1)*LEVEL_PTS+bj->score); |
802 | rb->lcd_getstringsize(str, &w, &h); | 783 | rb->lcd_getstringsize(str, &w, &h); |
@@ -881,8 +862,8 @@ static void jewels_putjewels(struct game_context* bj){ | |||
881 | #ifdef HAVE_LCD_COLOR | 862 | #ifdef HAVE_LCD_COLOR |
882 | rb->lcd_bitmap_transparent_part(jewels, 0, | 863 | rb->lcd_bitmap_transparent_part(jewels, 0, |
883 | TILE_HEIGHT*(bj->playboard[i][j].type), | 864 | TILE_HEIGHT*(bj->playboard[i][j].type), |
884 | STRIDE( SCREEN_MAIN, | 865 | STRIDE( SCREEN_MAIN, |
885 | BMPWIDTH_jewels, | 866 | BMPWIDTH_jewels, |
886 | BMPHEIGHT_jewels), | 867 | BMPHEIGHT_jewels), |
887 | j*TILE_WIDTH, | 868 | j*TILE_WIDTH, |
888 | (i-1)*TILE_HEIGHT+YOFS+ | 869 | (i-1)*TILE_HEIGHT+YOFS+ |
@@ -891,8 +872,8 @@ static void jewels_putjewels(struct game_context* bj){ | |||
891 | #else | 872 | #else |
892 | rb->lcd_bitmap_part(jewels, 0, | 873 | rb->lcd_bitmap_part(jewels, 0, |
893 | TILE_HEIGHT*(bj->playboard[i][j].type), | 874 | TILE_HEIGHT*(bj->playboard[i][j].type), |
894 | STRIDE( SCREEN_MAIN, | 875 | STRIDE( SCREEN_MAIN, |
895 | BMPWIDTH_jewels, | 876 | BMPWIDTH_jewels, |
896 | BMPHEIGHT_jewels), | 877 | BMPHEIGHT_jewels), |
897 | j*TILE_WIDTH, | 878 | j*TILE_WIDTH, |
898 | (i-1)*TILE_HEIGHT+YOFS+ | 879 | (i-1)*TILE_HEIGHT+YOFS+ |
@@ -1113,7 +1094,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
1113 | rb->lcd_bitmap_transparent_part(jewels, | 1094 | rb->lcd_bitmap_transparent_part(jewels, |
1114 | 0, TILE_HEIGHT*(bj->playboard | 1095 | 0, TILE_HEIGHT*(bj->playboard |
1115 | [y+1+vertmod][x+horzmod].type), | 1096 | [y+1+vertmod][x+horzmod].type), |
1116 | STRIDE( SCREEN_MAIN, | 1097 | STRIDE( SCREEN_MAIN, |
1117 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 1098 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
1118 | (x+horzmod)*TILE_WIDTH-horzmod* | 1099 | (x+horzmod)*TILE_WIDTH-horzmod* |
1119 | ((((movelen<<10)*k)/8)>>10), | 1100 | ((((movelen<<10)*k)/8)>>10), |
@@ -1122,7 +1103,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
1122 | TILE_WIDTH, TILE_HEIGHT); | 1103 | TILE_WIDTH, TILE_HEIGHT); |
1123 | rb->lcd_bitmap_transparent_part(jewels, | 1104 | rb->lcd_bitmap_transparent_part(jewels, |
1124 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), | 1105 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), |
1125 | STRIDE( SCREEN_MAIN, | 1106 | STRIDE( SCREEN_MAIN, |
1126 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 1107 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
1127 | x*TILE_WIDTH+horzmod* | 1108 | x*TILE_WIDTH+horzmod* |
1128 | ((((movelen<<10)*k)/8)>>10), | 1109 | ((((movelen<<10)*k)/8)>>10), |
@@ -1133,7 +1114,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
1133 | rb->lcd_bitmap_part(jewels, | 1114 | rb->lcd_bitmap_part(jewels, |
1134 | 0, TILE_HEIGHT*(bj->playboard | 1115 | 0, TILE_HEIGHT*(bj->playboard |
1135 | [y+1+vertmod][x+horzmod].type), | 1116 | [y+1+vertmod][x+horzmod].type), |
1136 | STRIDE( SCREEN_MAIN, | 1117 | STRIDE( SCREEN_MAIN, |
1137 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 1118 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
1138 | (x+horzmod)*TILE_WIDTH-horzmod* | 1119 | (x+horzmod)*TILE_WIDTH-horzmod* |
1139 | ((((movelen<<10)*k)/8)>>10), | 1120 | ((((movelen<<10)*k)/8)>>10), |
@@ -1143,7 +1124,7 @@ static unsigned int jewels_swapjewels(struct game_context* bj, | |||
1143 | rb->lcd_set_drawmode(DRMODE_FG); | 1124 | rb->lcd_set_drawmode(DRMODE_FG); |
1144 | rb->lcd_bitmap_part(jewels, | 1125 | rb->lcd_bitmap_part(jewels, |
1145 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), | 1126 | 0, TILE_HEIGHT*(bj->playboard[y+1][x].type), |
1146 | STRIDE( SCREEN_MAIN, | 1127 | STRIDE( SCREEN_MAIN, |
1147 | BMPWIDTH_jewels, BMPHEIGHT_jewels), | 1128 | BMPWIDTH_jewels, BMPHEIGHT_jewels), |
1148 | x*TILE_WIDTH+horzmod* | 1129 | x*TILE_WIDTH+horzmod* |
1149 | ((((movelen<<10)*k)/8)>>10), | 1130 | ((((movelen<<10)*k)/8)>>10), |
@@ -1430,7 +1411,7 @@ static bool jewels_help(void) | |||
1430 | { | 1411 | { |
1431 | static char *help_text[] = { | 1412 | static char *help_text[] = { |
1432 | "Jewels", "", "Aim", "", | 1413 | "Jewels", "", "Aim", "", |
1433 | "Swap", "pairs", "of", "jewels", "to", "form", "connected", | 1414 | "Swap", "pairs", "of", "jewels", "to", "form", "connected", |
1434 | "segments", "of", "three", "or", "more", "of", "the", "same", | 1415 | "segments", "of", "three", "or", "more", "of", "the", "same", |
1435 | "type.", "", | 1416 | "type.", "", |
1436 | "The", "goal", "of", "the", "game", "is", "to", "score", "as", "many", | 1417 | "The", "goal", "of", "the", "game", "is", "to", "score", "as", "many", |