diff options
author | Antoine Cellerier <dionoea@videolan.org> | 2005-06-26 20:12:56 +0000 |
---|---|---|
committer | Antoine Cellerier <dionoea@videolan.org> | 2005-06-26 20:12:56 +0000 |
commit | 59df31244acb02d8ee4947f1ed71392683dfcbcd (patch) | |
tree | c563c3d67d372f7d7bd7bed67cf58f542acd426f /apps/plugins | |
parent | 65b840dbd18193ada85473c4894c25fc58ab02e1 (diff) | |
download | rockbox-59df31244acb02d8ee4947f1ed71392683dfcbcd.tar.gz rockbox-59df31244acb02d8ee4947f1ed71392683dfcbcd.zip |
* use *rb->current_tick for srand
* don't truncate last column on players that have screens larger than
the recorder's
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6879 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/solitaire.c | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 1ef1cf5c90..9f2fbfa4f2 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c | |||
@@ -830,6 +830,13 @@ unsigned char move_card(unsigned char dest_col, unsigned char src_card){ | |||
830 | #define SOLITAIRE_QUIT 1 | 830 | #define SOLITAIRE_QUIT 1 |
831 | #define SOLITAIRE_USB 2 | 831 | #define SOLITAIRE_USB 2 |
832 | 832 | ||
833 | #if ( LCD_WIDTH > ( CARD_WIDTH * 8 ) ) | ||
834 | # define BIG_SCREEN 1 | ||
835 | #else | ||
836 | # define BIG_SCREEN 0 | ||
837 | #endif | ||
838 | #define LCD_WIDTH2 (LCD_WIDTH - BIG_SCREEN) | ||
839 | |||
833 | /* the game */ | 840 | /* the game */ |
834 | int solitaire(void){ | 841 | int solitaire(void){ |
835 | 842 | ||
@@ -838,11 +845,7 @@ int solitaire(void){ | |||
838 | unsigned char c; | 845 | unsigned char c; |
839 | int biggest_col_length; | 846 | int biggest_col_length; |
840 | 847 | ||
841 | struct tm time; | 848 | rb->srand( *rb->current_tick ); |
842 | time = *(rb->get_time()); | ||
843 | rb->srand( ( ( ( time.tm_year + 365 * time.tm_yday ) * 24 | ||
844 | + time.tm_hour ) * 60 + time.tm_min ) * 60 + time.tm_sec ); | ||
845 | |||
846 | 849 | ||
847 | switch(solitaire_menu(MENU_BEFOREGAME)) { | 850 | switch(solitaire_menu(MENU_BEFOREGAME)) { |
848 | case MENU_QUIT: | 851 | case MENU_QUIT: |
@@ -941,44 +944,50 @@ int solitaire(void){ | |||
941 | } | 944 | } |
942 | } | 945 | } |
943 | if(c != NOT_A_CARD) { | 946 | if(c != NOT_A_CARD) { |
944 | rb->lcd_bitmap(numbers[deck[c].num], LCD_WIDTH - CARD_WIDTH+1, i*CARD_HEIGHT, 8, 8, true); | 947 | rb->lcd_bitmap(numbers[deck[c].num], LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT, 8, 8, true); |
945 | } | 948 | } |
946 | rb->lcd_bitmap(colors[i], LCD_WIDTH - CARD_WIDTH+7, i*CARD_HEIGHT, 8, 8, true); | 949 | rb->lcd_bitmap(colors[i], LCD_WIDTH2 - CARD_WIDTH+7, i*CARD_HEIGHT, 8, 8, true); |
947 | /* draw a selected card */ | 950 | /* draw a selected card */ |
948 | if(c != NOT_A_CARD) { | 951 | if(c != NOT_A_CARD) { |
949 | if(sel_card == c){ | 952 | if(sel_card == c){ |
950 | rb->lcd_drawrect(LCD_WIDTH - CARD_WIDTH+1, i*CARD_HEIGHT + 1, CARD_WIDTH-1, CARD_HEIGHT-1); | 953 | rb->lcd_drawrect(LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT + 1, CARD_WIDTH-1, CARD_HEIGHT-1); |
951 | } | 954 | } |
952 | } | 955 | } |
953 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,i*CARD_HEIGHT,LCD_WIDTH - 1,i*CARD_HEIGHT); | 956 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT,LCD_WIDTH2 - 1,i*CARD_HEIGHT); |
954 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH,i*CARD_HEIGHT+1,LCD_WIDTH - CARD_WIDTH,(i+1)*CARD_HEIGHT-1); | 957 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH,i*CARD_HEIGHT+1,LCD_WIDTH2 - CARD_WIDTH,(i+1)*CARD_HEIGHT-1); |
955 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,(i+1)*CARD_HEIGHT,LCD_WIDTH - 1,(i+1)*CARD_HEIGHT); | 958 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH+1,(i+1)*CARD_HEIGHT,LCD_WIDTH2 - 1,(i+1)*CARD_HEIGHT); |
959 | #if BIG_SCREEN | ||
960 | rb->lcd_drawline(LCD_WIDTH2,i*CARD_HEIGHT+1,LCD_WIDTH2,(i+1)*CARD_HEIGHT-1); | ||
961 | #endif | ||
956 | /* draw the cursor on one of the stacks */ | 962 | /* draw the cursor on one of the stacks */ |
957 | if(cur_col == STACKS_COL + i){ | 963 | if(cur_col == STACKS_COL + i){ |
958 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); | 964 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); |
959 | rb->lcd_fillrect(LCD_WIDTH - CARD_WIDTH+1, i*CARD_HEIGHT + 1, CARD_WIDTH-1, CARD_HEIGHT-1); | 965 | rb->lcd_fillrect(LCD_WIDTH2 - CARD_WIDTH+1, i*CARD_HEIGHT + 1, CARD_WIDTH-1, CARD_HEIGHT-1); |
960 | rb->lcd_set_drawmode(DRMODE_SOLID); | 966 | rb->lcd_set_drawmode(DRMODE_SOLID); |
961 | } | 967 | } |
962 | } | 968 | } |
963 | 969 | ||
964 | /* draw the remains */ | 970 | /* draw the remains */ |
965 | if(rem != NOT_A_CARD) { | 971 | if(rem != NOT_A_CARD) { |
966 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,LCD_HEIGHT-CARD_HEIGHT-1,LCD_WIDTH - 1,LCD_HEIGHT-CARD_HEIGHT-1); | 972 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH+1,LCD_HEIGHT-CARD_HEIGHT-1,LCD_WIDTH2 - 1,LCD_HEIGHT-CARD_HEIGHT-1); |
967 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH,LCD_HEIGHT-CARD_HEIGHT,LCD_WIDTH - CARD_WIDTH,LCD_HEIGHT-2); | 973 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH,LCD_HEIGHT-CARD_HEIGHT,LCD_WIDTH2 - CARD_WIDTH,LCD_HEIGHT-2); |
968 | rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,LCD_HEIGHT-1,LCD_WIDTH - 1,LCD_HEIGHT-1); | 974 | rb->lcd_drawline(LCD_WIDTH2 - CARD_WIDTH+1,LCD_HEIGHT-1,LCD_WIDTH2 - 1,LCD_HEIGHT-1); |
975 | #if BIG_SCREEN | ||
976 | rb->lcd_drawline(LCD_WIDTH2,LCD_HEIGHT-CARD_HEIGHT,LCD_WIDTH2,LCD_HEIGHT-2); | ||
977 | #endif | ||
969 | if(cur_rem != NOT_A_CARD){ | 978 | if(cur_rem != NOT_A_CARD){ |
970 | rb->lcd_bitmap(numbers[deck[cur_rem].num], LCD_WIDTH - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); | 979 | rb->lcd_bitmap(numbers[deck[cur_rem].num], LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); |
971 | rb->lcd_bitmap(colors[deck[cur_rem].color], LCD_WIDTH - CARD_WIDTH+7, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); | 980 | rb->lcd_bitmap(colors[deck[cur_rem].color], LCD_WIDTH2 - CARD_WIDTH+7, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); |
972 | /* draw a selected card */ | 981 | /* draw a selected card */ |
973 | if(sel_card == cur_rem){ | 982 | if(sel_card == cur_rem){ |
974 | rb->lcd_drawrect(LCD_WIDTH - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1); | 983 | rb->lcd_drawrect(LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1); |
975 | } | 984 | } |
976 | } | 985 | } |
977 | } | 986 | } |
978 | /* draw the cursor */ | 987 | /* draw the cursor */ |
979 | if(cur_col == REM_COL){ | 988 | if(cur_col == REM_COL){ |
980 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); | 989 | rb->lcd_set_drawmode(DRMODE_COMPLEMENT); |
981 | rb->lcd_fillrect(LCD_WIDTH - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1); | 990 | rb->lcd_fillrect(LCD_WIDTH2 - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT,CARD_WIDTH-1, CARD_HEIGHT-1); |
982 | rb->lcd_set_drawmode(DRMODE_SOLID); | 991 | rb->lcd_set_drawmode(DRMODE_SOLID); |
983 | } | 992 | } |
984 | 993 | ||