Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorYves Combe <ycombe@src.gnome.org>2005-09-01 13:40:44 (GMT)
committer Yves Combe <ycombe@src.gnome.org>2005-09-01 13:40:44 (GMT)
commit0b915a8afeb0d3993642e6c0c0a67e9fd2957cfa (patch)
treefd81b2a471dba24c8e88814d16fccf79d1d38d5a /src
parent402957f2b264248ca06d3e62967411e9df7909af (diff)
improve menmory_tux UI marking scores.
adapt memory to make less difficult the board.
Diffstat (limited to 'src')
-rw-r--r--src/boards/memory.c72
1 files changed, 65 insertions, 7 deletions
diff --git a/src/boards/memory.c b/src/boards/memory.c
index d42ba2c..d91e617 100644
--- a/src/boards/memory.c
+++ b/src/boards/memory.c
@@ -1,6 +1,6 @@
/* gcompris - memory.c
*
- * Time-stamp: <2005/09/01 10:49:42 yves>
+ * Time-stamp: <2005/09/01 15:33:53 yves>
*
* Copyright (C) 2000 Bruno Coudoin
*
@@ -74,9 +74,11 @@ static MemoryItem *secondCard = NULL;
/* Define the page area where memory cards can be displayed */
#define BASE_X1 50
#define BASE_Y1 50
-#define BASE_X2 750
+#define BASE_X2 790
#define BASE_Y2 500
+#define BASE_X1_TUX 200
+
gint current_x;
gint current_y;
gint numberOfLine;
@@ -197,7 +199,7 @@ static BoardPlugin menu_bp =
static gboolean to_tux = FALSE;
static GQueue *tux_memory;
static gint tux_memory_size;
-static gint tux_memory_sizes[] = { 2, 4, 6, 8, 10, 12, 14, 16, 18 };
+static gint tux_memory_sizes[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
static gint tux_pairs = 0;
static gint player_pairs = 0;
@@ -229,6 +231,13 @@ static gint tux_id = 0;
static GList *passed_token = NULL;
+static GnomeCanvasItem *tux;
+static GnomeCanvasItem *tux_score;
+static GnomeCanvasItem *player_score;
+
+static gchar *tux_score_str;
+static gchar *player_score_str;
+
extern int strcmp (char *, char *);
/* set the type of the token returned in string in type_returned */
@@ -438,7 +447,7 @@ static void start_board (GcomprisBoard *agcomprisBoard)
assert(g_utf8_validate(alphabet_uppercase,-1,NULL)); // require by all utf8-functions
if (currentMode == MODE_TUX){
- tux_memory_size = tux_memory_sizes[gcomprisBoard->level-1];
+ tux_memory_size = tux_memory_sizes[gcomprisBoard->level];
tux_memory = g_queue_new ();
}
@@ -497,6 +506,18 @@ is_our_board (GcomprisBoard *gcomprisBoard)
/*-------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------*/
+static void update_scores()
+{
+
+ g_free(tux_score_str);
+ g_free(player_score_str);
+ tux_score_str = g_strdup_printf("%d", tux_pairs);
+ player_score_str = g_strdup_printf("%d", player_pairs);
+ gnome_canvas_item_set(tux_score, "text", tux_score_str, NULL);
+ gnome_canvas_item_set(player_score, "text", player_score_str, NULL);
+
+}
+
/* set initial values for the next level */
static void memory_next_level()
{
@@ -521,11 +542,12 @@ static void memory_next_level()
create_item(boardRootItem);
if (currentMode == MODE_TUX){
- tux_memory_size = tux_memory_sizes[gcomprisBoard->level-1];
+ tux_memory_size = tux_memory_sizes[gcomprisBoard->level];
}
tux_pairs = 0;
player_pairs = 0;
+ update_scores();
}
@@ -679,13 +701,47 @@ static GnomeCanvasItem *create_item(GnomeCanvasGroup *parent)
double card_shadow_w, card_shadow_h;
// Calc width and height of one card
- width = (BASE_X2-BASE_X1)/numberOfColumn;
+ width = (BASE_X2-(currentMode == MODE_TUX ? BASE_X1_TUX : BASE_X1))/numberOfColumn;
height = (BASE_Y2-BASE_Y1)/numberOfLine;
/* Remove a little bit of space for the card shadow */
height2 = height * 0.9;
width2 = width * 0.9;
+ if (currentMode == MODE_TUX){
+ GdkPixbuf *pixmap_tux = gcompris_load_pixmap("images/tux-teacher.png");
+
+ tux = gnome_canvas_item_new (GNOME_CANVAS_GROUP(parent),
+ gnome_canvas_pixbuf_get_type (),
+ "pixbuf", pixmap_tux,
+ "x", (double) 50,
+ "y", (double) 20,
+ NULL);
+
+
+ tux_score = gnome_canvas_item_new (GNOME_CANVAS_GROUP(parent),
+ gnome_canvas_text_get_type (),
+ "text", tux_score,
+ "font", gcompris_skin_font_board_huge_bold,
+ "x", (double) 100,
+ "y", (double) 200,
+ "anchor", GTK_ANCHOR_CENTER,
+ "fill_color_rgba", 0xFF0F0FFF,
+ NULL);
+
+ player_score = gnome_canvas_item_new (GNOME_CANVAS_GROUP(parent),
+ gnome_canvas_text_get_type (),
+ "text", player_score,
+ "font", gcompris_skin_font_board_huge_bold,
+ "x", (double) 100,
+ "y", (double) BASE_Y2 - 20,
+ "anchor", GTK_ANCHOR_CENTER,
+ "fill_color_rgba", 0xFF0F0FFF,
+ NULL);
+
+
+
+ }
for(x=0; x<numberOfColumn; x++)
{
@@ -697,7 +753,7 @@ static GnomeCanvasItem *create_item(GnomeCanvasGroup *parent)
memoryItem->rootItem = \
gnome_canvas_item_new (parent,
gnome_canvas_group_get_type (),
- "x", (double) BASE_X1 + x*width,
+ "x", (double) (currentMode == MODE_TUX ? BASE_X1_TUX : BASE_X1) + x*width,
"y", (double) BASE_Y1 + y*height,
NULL);
@@ -852,6 +908,8 @@ static gint hide_card (GtkWidget *widget, gpointer data)
tux_pairs++;
else
player_pairs++;
+
+ update_scores();
}
if(firstCard!=NULL)