summaryrefslogtreecommitdiff
path: root/apps/plugins/jewels.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/jewels.c')
-rw-r--r--apps/plugins/jewels.c71
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",