diff options
author | Bruno Coudoin <bcoudoin@src.gnome.org> | 2008-10-25 19:15:32 (GMT) |
---|---|---|
committer | Bruno Coudoin <bcoudoin@src.gnome.org> | 2008-10-25 19:15:32 (GMT) |
commit | 06ea8c617d554e19da53fc6ec554f5c04c051640 (patch) | |
tree | 761e212a3bfa29e5e122f2083c7dab7c1a0d600a /src/boards | |
parent | 1fa5e50ef7c6cb3861209858ec69b6bccebcb904 (diff) |
selected a better text color in clockgame text fixed a major crash case
* boards/skins/babytoy/skin.xml: selected a better text color in
clockgame text
* src/boards/smallnumbers.c: (key_press), (player_win):fixed a major crash case
The crash happend when there are 2 or more dice at the sublevel 9. The first
die complete the game and the next die is processed but already deleted.
svn path=/trunk/; revision=3578
Diffstat (limited to 'src/boards')
-rw-r--r-- | src/boards/smallnumbers.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/boards/smallnumbers.c b/src/boards/smallnumbers.c index b5bab0c..bafb73b 100644 --- a/src/boards/smallnumbers.c +++ b/src/boards/smallnumbers.c @@ -248,6 +248,24 @@ static gint key_press(guint keyval, gchar *commit_str, gchar *preedit_str) (GFunc) smallnumbers_gotkey_item, GINT_TO_POINTER(keyval)); + if(gcomprisBoard->sublevel>gcomprisBoard->number_of_sublevel) + { + /* Try the next level */ + gcomprisBoard->level++; + if(gcomprisBoard->level>gcomprisBoard->maxlevel) { // the current board is finished : bail out + gc_score_end(); + gc_bonus_end_display(GC_BOARD_FINISHED_RANDOM); + return TRUE; + } + gamewon = TRUE; + smallnumbers_destroy_all_items(); + gc_bonus_display(gamewon, GC_BONUS_SMILEY); + } + else + { + gc_score_set(gcomprisBoard->sublevel); + } + return TRUE; } @@ -481,23 +499,6 @@ static void player_win(GnomeCanvasItem *item) gcomprisBoard->sublevel++; gc_score_set(gcomprisBoard->sublevel); - if(gcomprisBoard->sublevel>gcomprisBoard->number_of_sublevel) - { - /* Try the next level */ - gcomprisBoard->level++; - if(gcomprisBoard->level>gcomprisBoard->maxlevel) { // the current board is finished : bail out - gc_score_end(); - gc_bonus_end_display(GC_BOARD_FINISHED_RANDOM); - return; - } - gamewon = TRUE; - smallnumbers_destroy_all_items(); - gc_bonus_display(gamewon, GC_BONUS_SMILEY); - } - else - { - gc_score_set(gcomprisBoard->sublevel); - } } static void player_loose() |