From f50bbce43867ddc285823c0d2c65bc42b1d8d161 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 18 Aug 2004 12:06:10 +0000 Subject: fixed comments, added linefeeds to chop some of the longest lines git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5000 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/solitaire.c | 635 +++++++++++++++++++++++++---------------------- 1 file changed, 340 insertions(+), 295 deletions(-) (limited to 'apps/plugins/solitaire.c') diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 28334437c7..04fde17415 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -60,179 +60,179 @@ static struct plugin_api* rb; #define HELP_BUTTON_ON "Select cards in the columns, Move cards inside the columns, reveal hidden cards ..." static unsigned char colors[4][8] = { -//Spades -{0x00, //........ - 0x18, //...O.... - 0x1c, //..OOO... - 0x3e, //.OOOOO.. - 0x1c, //.OOOOO.. - 0x18, //...O.... - 0x00, //........ - 0x00},//........ -//Hearts -{0x00, //........ - 0x0c, //..O.O... - 0x1e, //.OOOOO.. - 0x3c, //.OOOOO.. - 0x1e, //..OOO... - 0x0c, //...O.... - 0x00, //........ - 0x00},//........ -//Clubs -{0x00, //........ - 0x18, //..OOO... - 0x0a, //...O.... - 0x3e, //.OOOOO.. - 0x0a, //.O.O.O.. - 0x18, //...O.... - 0x00, //........ - 0x00},//........ -//Diamonds -{0x00, //........ - 0x08, //...O.... - 0x1c, //..OOO... - 0x3e, //.OOOOO.. - 0x1c, //..OOO... - 0x08, //...O.... - 0x00, //........ - 0x00} //........ +/* Spades */ + {0x00, /* ........ */ + 0x18, /* ...O.... */ + 0x1c, /* ..OOO... */ + 0x3e, /* .OOOOO.. */ + 0x1c, /* .OOOOO.. */ + 0x18, /* ...O.... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* Hearts */ + {0x00, /* ........ */ + 0x0c, /* ..O.O... */ + 0x1e, /* .OOOOO.. */ + 0x3c, /* .OOOOO.. */ + 0x1e, /* ..OOO... */ + 0x0c, /* ...O.... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* Clubs */ + {0x00, /* ........ */ + 0x18, /* ..OOO... */ + 0x0a, /* ...O.... */ + 0x3e, /* .OOOOO.. */ + 0x0a, /* .O.O.O.. */ + 0x18, /* ...O.... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* Diamonds */ + {0x00, /* ........ */ + 0x08, /* ...O.... */ + 0x1c, /* ..OOO... */ + 0x3e, /* .OOOOO.. */ + 0x1c, /* ..OOO... */ + 0x08, /* ...O.... */ + 0x00, /* ........ */ + 0x00} /* ........ */ }; static unsigned char numbers[13][8] = { -//Ace -{0x00, //........ - 0x38, //...O.... - 0x14, //..O.O... - 0x12, //.O...O.. - 0x14, //.OOOOO.. - 0x38, //.O...O.. - 0x00, //........ - 0x00},//........ -//2 -{0x00, //........ - 0x24, //..OOO... - 0x32, //.O...O.. - 0x32, //....O... - 0x2a, //..OO.... - 0x24, //.OOOOO.. - 0x00, //........ - 0x00},//........ -//3 -{0x00, //........ - 0x22, //.OOOO... - 0x2a, //.....O.. - 0x2a, //..OOO... - 0x2a, //.....O.. - 0x14, //.OOOO... - 0x00, //........ - 0x00},//........ -//4 -{0x00, //........ - 0x10, //....O... - 0x18, //...O.... - 0x34, //..O..... - 0x12, //.OOOOO.. - 0x10, //...O.... - 0x00, //........ - 0x00},//........ -//5 -{0x00, //........ - 0x2e, //.OOOOO.. - 0x2a, //.O...... - 0x2a, //.OOOO... - 0x2a, //.....O.. - 0x12, //.OOOO... - 0x00, //........ - 0x00},//........ -//6 -{0x00, //........ - 0x1c, //..OOO... - 0x2a, //.O...... - 0x2a, //.OOOO... - 0x2a, //.O...O.. - 0x10, //..OOO... - 0x00, //........ - 0x00},//........ -//7 -{0x00, //........ - 0x22, //.OOOOO.. - 0x12, //....O... - 0x0a, //...O.... - 0x06, //..O..... - 0x02, //.O...... - 0x00, //........ - 0x00},//........ -//8 -{0x00, //........ - 0x14, //..OOO... - 0x2a, //.O...O.. - 0x2a, //..OOO... - 0x2a, //.O...O.. - 0x14, //..OOO... - 0x00, //........ - 0x00},//........ -//9 -{0x00, //........ - 0x04, //..OOO... - 0x2a, //.O...O.. - 0x2a, //..OOOO.. - 0x2a, //.....O.. - 0x1c, //..OOO... - 0x00, //........ - 0x00},//........ -//10 -{0x00, //........ - 0x3e, //.O..O... - 0x00, //.O.O.O.. - 0x1c, //.O.O.O.. - 0x22, //.O.O.O.. - 0x1c, //.O..O... - 0x00, //........ - 0x00},//........ -//Jack -{0x00, //........ - 0x12, //.OOOOO.. - 0x22, //...O.... - 0x1e, //...O.... - 0x02, //.O.O.... - 0x02, //..O..... - 0x00, //........ - 0x00},//........ -//Queen -{0x00, //........ - 0x1c, //..OOO... - 0x22, //.O...O.. - 0x32, //.O...O.. - 0x22, //.O.O.O.. - 0x1c, //..OOO... - 0x00, //........ - 0x00},//........ -//King -{0x00, //........ - 0x3e, //.O...O.. - 0x08, //.O..O... - 0x08, //.OOO.... - 0x14, //.O..O... - 0x22, //.O...O.. - 0x00, //........ - 0x00} //........ +/* Ace */ + {0x00, /* ........ */ + 0x38, /* ...O.... */ + 0x14, /* ..O.O... */ + 0x12, /* .O...O.. */ + 0x14, /* .OOOOO.. */ + 0x38, /* .O...O.. */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 2 */ + {0x00, /* ........ */ + 0x24, /* ..OOO... */ + 0x32, /* .O...O.. */ + 0x32, /* ....O... */ + 0x2a, /* ..OO.... */ + 0x24, /* .OOOOO.. */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 3 */ + {0x00, /* ........ */ + 0x22, /* .OOOO... */ + 0x2a, /* .....O.. */ + 0x2a, /* ..OOO... */ + 0x2a, /* .....O.. */ + 0x14, /* .OOOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 4 */ + {0x00, /* ........ */ + 0x10, /* ....O... */ + 0x18, /* ...O.... */ + 0x34, /* ..O..... */ + 0x12, /* .OOOOO.. */ + 0x10, /* ...O.... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 5 */ + {0x00, /* ........ */ + 0x2e, /* .OOOOO.. */ + 0x2a, /* .O...... */ + 0x2a, /* .OOOO... */ + 0x2a, /* .....O.. */ + 0x12, /* .OOOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 6 */ + {0x00, /* ........ */ + 0x1c, /* ..OOO... */ + 0x2a, /* .O...... */ + 0x2a, /* .OOOO... */ + 0x2a, /* .O...O.. */ + 0x10, /* ..OOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 7 */ + {0x00, /* ........ */ + 0x22, /* .OOOOO.. */ + 0x12, /* ....O... */ + 0x0a, /* ...O.... */ + 0x06, /* ..O..... */ + 0x02, /* .O...... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 8 */ + {0x00, /* ........ */ + 0x14, /* ..OOO... */ + 0x2a, /* .O...O.. */ + 0x2a, /* ..OOO... */ + 0x2a, /* .O...O.. */ + 0x14, /* ..OOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 9 */ + {0x00, /* ........ */ + 0x04, /* ..OOO... */ + 0x2a, /* .O...O.. */ + 0x2a, /* ..OOOO.. */ + 0x2a, /* .....O.. */ + 0x1c, /* ..OOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* 10 */ + {0x00, /* ........ */ + 0x3e, /* .O..O... */ + 0x00, /* .O.O.O.. */ + 0x1c, /* .O.O.O.. */ + 0x22, /* .O.O.O.. */ + 0x1c, /* .O..O... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* Jack */ + {0x00, /* ........ */ + 0x12, /* .OOOOO.. */ + 0x22, /* ...O.... */ + 0x1e, /* ...O.... */ + 0x02, /* .O.O.... */ + 0x02, /* ..O..... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* Queen */ + {0x00, /* ........ */ + 0x1c, /* ..OOO... */ + 0x22, /* .O...O.. */ + 0x32, /* .O...O.. */ + 0x22, /* .O.O.O.. */ + 0x1c, /* ..OOO... */ + 0x00, /* ........ */ + 0x00},/* ........ */ +/* King */ + {0x00, /* ........ */ + 0x3e, /* .O...O.. */ + 0x08, /* .O..O... */ + 0x08, /* .OOO.... */ + 0x14, /* .O..O... */ + 0x22, /* .O...O.. */ + 0x00, /* ........ */ + 0x00} /* ........ */ }; #define NOT_A_CARD 255 -//number of cards per color +/* number of cards per color */ #define CARDS_PER_COLOR 13 -//number of colors +/* number of colors */ #define COLORS 4 -//number of columns +/* number of columns */ #define COL_NUM 7 -//number of cards that are drawn on the remains' stack (by pressing F2) +/* number of cards that are drawn on the remains' stack (by pressing F2) */ #define CARDS_PER_DRAW 3 -//size of a card on the screen +/* size of a card on the screen */ #define CARD_WIDTH 14 #define CARD_HEIGHT 10 @@ -240,7 +240,7 @@ typedef struct card { unsigned char color : 2; unsigned char num : 4; unsigned char known : 1; - unsigned char used : 1;//this is what is used when dealing cards + unsigned char used : 1;/* this is what is used when dealing cards */ unsigned char next; } card; @@ -260,9 +260,9 @@ unsigned char next_random_card(card *deck){ return i; } -//help for the not so intuitive interface -void solitaire_help(void){ - +/* help for the not so intuitive interface */ +void solitaire_help(void) +{ rb->lcd_clear_display(); rb->lcd_putsxy(0, 0, "Press a key to see"); @@ -291,37 +291,39 @@ void solitaire_help(void){ } } -//menu return codes +/* menu return codes */ #define MENU_RESUME 0 #define MENU_RESTART 1 #define MENU_HELP 2 #define MENU_QUIT 3 -//menu item number +/* menu item number */ #define MENU_LENGTH 4 -//different menu behaviors +/* different menu behaviors */ #define MENU_BEFOREGAME 0 #define MENU_DURINGGAME 1 -//the menu -//text displayed changes depending on the 'when' parameter -int solitaire_menu(unsigned char when){ +/* the menu */ +/* text displayed changes depending on the 'when' parameter */ +int solitaire_menu(unsigned char when) { static char menu[2][MENU_LENGTH][13] = - { { "Start Game", - "", - "Help", - "Quit" }, - { "Resume Game", - "Restart Game", - "Help", - "Quit"} }; + { { "Start Game", + "", + "Help", + "Quit" }, + { "Resume Game", + "Restart Game", + "Help", + "Quit"} + }; int i; int cursor=0; - if(when!=MENU_BEFOREGAME && when!=MENU_DURINGGAME) when = MENU_DURINGGAME; + if(when!=MENU_BEFOREGAME && when!=MENU_DURINGGAME) + when = MENU_DURINGGAME; while(1){ @@ -377,33 +379,33 @@ int solitaire_menu(unsigned char when){ } } -//player's cursor +/* player's cursor */ unsigned char cur_card; -//player's cursor column num +/* player's cursor column num */ unsigned char cur_col; -//selected card +/* selected card */ unsigned char sel_card; -//the deck +/* the deck */ card deck[COLORS * CARDS_PER_COLOR]; -//the remaining cards +/* the remaining cards */ unsigned char rem; unsigned char cur_rem; -//the 7 game columns +/* the 7 game columns */ unsigned char cols[COL_NUM]; -//the 4 final color stacks +/* the 4 final color stacks */ unsigned char stacks[COLORS]; -//initialize the game +/* initialize the game */ void solitaire_init(void){ unsigned char c; int i,j; - //init deck + /* init deck */ for(i=0;ilcd_clear_display(); - //get the biggest column length so that display can be "optimized" + /* get the biggest column length so that display can be "optimized" */ biggest_col_length = 0; for(i=0;ibiggest_col_length) biggest_col_length = j; } - //check if there are cards remaining in the game. - //if there aren't any, that means you won :) + /* check if there are cards remaining in the game. */ + /* if there aren't any, that means you won :) */ if(biggest_col_length == 0 && rem == NOT_A_CARD){ rb->splash(HZ*2, true, "You Won :)"); return; } - //draw the columns + /* draw the columns */ for(i=0;ilcd_clearrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM, j+1, CARD_WIDTH, CARD_HEIGHT-1); - //known card - if(deck[c].known){ - rb->lcd_bitmap(numbers[deck[c].num], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, j, 8, 8, true); - rb->lcd_bitmap(colors[deck[c].color], i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+7, j, 8, 8, true); + /* clear the card's spot */ + rb->lcd_clearrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM, + j+1, CARD_WIDTH, CARD_HEIGHT-1); + /* known card */ + if(deck[c].known) { + rb->lcd_bitmap(numbers[deck[c].num], + i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, + j, 8, 8, true); + rb->lcd_bitmap(colors[deck[c].color], + i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+7, + j, 8, 8, true); } - //draw top line of the card - rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1,j,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH-1,j); - //selected card + /* draw top line of the card */ + rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, + j,i*(LCD_WIDTH - CARD_WIDTH)/ + COL_NUM+CARD_WIDTH-1,j); + /* selected card */ if(c == sel_card && sel_card != NOT_A_CARD){ - rb->lcd_drawrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, j+1, CARD_WIDTH-1, CARD_HEIGHT-1); + rb->lcd_drawrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, + j+1, CARD_WIDTH-1, CARD_HEIGHT-1); } - //cursor (or not) + /* cursor (or not) */ if(c == cur_card){ - rb->lcd_invertrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, j+1, CARD_WIDTH-1, CARD_HEIGHT-1); - //go to the next card + rb->lcd_invertrect(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, + j+1, CARD_WIDTH-1, CARD_HEIGHT-1); + /* go to the next card */ c = deck[c].next; - if(c == NOT_A_CARD) break; + if(c == NOT_A_CARD) + break; j += CARD_HEIGHT - 2; - } else { - //go to the next card + } + else { + /* go to the next card */ c = deck[c].next; - if(c == NOT_A_CARD) break; - j += min(CARD_HEIGHT - 2, (LCD_HEIGHT - CARD_HEIGHT)/biggest_col_length); + if(c == NOT_A_CARD) + break; + j += min(CARD_HEIGHT - 2, + (LCD_HEIGHT - CARD_HEIGHT)/biggest_col_length); } } - //draw line to the left of the column - rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM,1,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM,j+CARD_HEIGHT-1); - //draw line to the right of the column - rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH,1,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH,j+CARD_HEIGHT-1); - //draw bottom of the last card - rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1,j+CARD_HEIGHT,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH-1,j+CARD_HEIGHT); + /* draw line to the left of the column */ + rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM, + 1,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM, + j+CARD_HEIGHT-1); + /* draw line to the right of the column */ + rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH, + 1,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+CARD_WIDTH, + j+CARD_HEIGHT-1); + /* draw bottom of the last card */ + rb->lcd_drawline(i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+1, + j+CARD_HEIGHT,i*(LCD_WIDTH - CARD_WIDTH)/COL_NUM+ + CARD_WIDTH-1,j+CARD_HEIGHT); } - //draw the stacks + /* draw the stacks */ for(i=0; ilcd_bitmap(numbers[deck[c].num], LCD_WIDTH - CARD_WIDTH+1, i*CARD_HEIGHT, 8, 8, true); + rb->lcd_bitmap(numbers[deck[c].num], LCD_WIDTH - CARD_WIDTH+1, + i*CARD_HEIGHT, 8, 8, true); } - rb->lcd_bitmap(colors[i], LCD_WIDTH - CARD_WIDTH+7, i*CARD_HEIGHT, 8, 8, true); - rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,i*CARD_HEIGHT,LCD_WIDTH - 1,i*CARD_HEIGHT); - rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,(i+1)*CARD_HEIGHT,LCD_WIDTH - 1,(i+1)*CARD_HEIGHT); + rb->lcd_bitmap(colors[i], LCD_WIDTH - CARD_WIDTH+7, + i*CARD_HEIGHT, 8, 8, true); + rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1, + i*CARD_HEIGHT,LCD_WIDTH - 1,i*CARD_HEIGHT); + rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1, + (i+1)*CARD_HEIGHT,LCD_WIDTH - 1, + (i+1)*CARD_HEIGHT); } - //draw the remains - rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,LCD_HEIGHT-CARD_HEIGHT-1,LCD_WIDTH - 1,LCD_HEIGHT-CARD_HEIGHT-1); - rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1,LCD_HEIGHT-1,LCD_WIDTH - 1,LCD_HEIGHT-1); + /* draw the remains */ + rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1, + LCD_HEIGHT-CARD_HEIGHT-1, + LCD_WIDTH - 1,LCD_HEIGHT-CARD_HEIGHT-1); + rb->lcd_drawline(LCD_WIDTH - CARD_WIDTH+1, + LCD_HEIGHT-1,LCD_WIDTH - 1,LCD_HEIGHT-1); if(cur_rem != NOT_A_CARD){ - rb->lcd_bitmap(numbers[deck[cur_rem].num], LCD_WIDTH - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); - rb->lcd_bitmap(colors[deck[cur_rem].color], LCD_WIDTH - CARD_WIDTH+7, LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); + rb->lcd_bitmap(numbers[deck[cur_rem].num], + LCD_WIDTH - CARD_WIDTH+1, LCD_HEIGHT-CARD_HEIGHT, + 8, 8, true); + rb->lcd_bitmap(colors[deck[cur_rem].color], + LCD_WIDTH - CARD_WIDTH+7, + LCD_HEIGHT-CARD_HEIGHT, 8, 8, true); } rb->lcd_update(); - //what to do when a key is pressed ... + /* what to do when a key is pressed ... */ switch(rb->button_get(true)){ - //move cursor to the last card of the previous column + /* move cursor to the last card of the previous column */ case BUTTON_RIGHT: cur_col = (cur_col+1)%COL_NUM; cur_card = cols[cur_col]; @@ -573,7 +606,7 @@ void solitaire(void){ } break; - //move cursor to the last card of the next column + /* move cursor to the last card of the next column */ case BUTTON_LEFT: cur_col = (cur_col + COL_NUM - 1)%COL_NUM; cur_card = cols[cur_col]; @@ -584,7 +617,7 @@ void solitaire(void){ } break; - //move cursor to card that's bellow + /* move cursor to card that's bellow */ case BUTTON_DOWN: if(cur_card == NOT_A_CARD) break; if(deck[cur_card].next != NOT_A_CARD){ @@ -594,7 +627,7 @@ void solitaire(void){ } break; - //move cursor to card that's above + /* move cursor to card that's above */ case BUTTON_UP: if(cur_card == NOT_A_CARD) break; if(cols[cur_col] == cur_card){ @@ -610,61 +643,64 @@ void solitaire(void){ } break; - //Try to put card under cursor on one of the stacks + /* Try to put card under cursor on one of the stacks */ case BUTTON_F1: - //check if a card is selected - //else there would be nothing to move on the stacks ! + /* check if a card is selected */ + /* else there would be nothing to move on the stacks ! */ if(cur_card != NOT_A_CARD){ - //find the last card in the color's stack and put it's number in 'c'. + /* find the last card in the color's stack and put it's number in 'c'. */ c = stacks[deck[cur_card].color]; if(c!=NOT_A_CARD){ while(deck[c].next!=NOT_A_CARD){ c = deck[c].next; } } - //if 'c' isn't a card, that means that the stack is empty - //which implies that only an ace can be moved + /* if 'c' isn't a card, that means that the stack is empty */ + /* which implies that only an ace can be moved */ if(c == NOT_A_CARD){ - //check if the selected card is an ace - //we don't have to check if any card is in the *.next - //position since the ace is the last possible card + /* check if the selected card is an ace */ + /* we don't have to check if any card is in the *.next */ + /* position since the ace is the last possible card */ if(deck[cur_card].num == 0){ - //remove 'cur_card' from any *.next postition ... - //... by looking in the columns + /* remove 'cur_card' from any *.next postition ... */ + /* ... by looking in the columns */ for(i=0;isplash(HZ*2, true, "Welcome to Solitaire !"); - //play the game :) + /* play the game :) */ solitaire(); - //Exit the plugin + /* Exit the plugin */ return PLUGIN_OK; } -- cgit v1.2.3