diff options
author | Bruno Coudoin <bcoudoin@src.gnome.org> | 2009-01-30 23:45:19 (GMT) |
---|---|---|
committer | Bruno Coudoin <bcoudoin@src.gnome.org> | 2009-01-30 23:45:19 (GMT) |
commit | 732a24b91036fe5c015f7fb09b6027611a9e7701 (patch) | |
tree | 94e4a02f1a029632eb633bd7c749a66ad2470aa6 /src/boards | |
parent | 0c8b8a52b999d4f60b59d6388a34bf0b43908fcb (diff) |
Fixed crash bug when board finished.
svn path=/trunk/; revision=3711
Diffstat (limited to 'src/boards')
-rw-r--r-- | src/boards/python/redraw.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/boards/python/redraw.py b/src/boards/python/redraw.py index 320596f..cec7187 100644 --- a/src/boards/python/redraw.py +++ b/src/boards/python/redraw.py @@ -198,9 +198,14 @@ class Gcompris_redraw: self.erase_drawing_area() if (self.increment_level() == 1): self.gamewon = 1 - gcompris.bonus.display(gcompris.bonus.WIN, gcompris.bonus.FLOWER) - self.display_current_level() - self.root_targetitem.hide() + # (Quick fix) Trying to avoid a crash when board is finished + if self.display_current_level() == 0: # the current board is finished... + gcompris.bonus.board_finished(gcompris.bonus.FINISHED_RANDOM) + self.end() + else: # Level up + self.root_targetitem.hide() + gcompris.bonus.display(gcompris.bonus.WIN, gcompris.bonus.FLOWER) + else: # Delete previous mark if any @@ -286,10 +291,8 @@ class Gcompris_redraw: i = (self.gcomprisBoard.level-1)*self.gcomprisBoard.number_of_sublevel+ \ (self.gcomprisBoard.sublevel-1) - if(i>=len(self.drawlist)): - # the current board is finished : bail out - gcompris.bonus.board_finished(gcompris.bonus.FINISHED_RANDOM) - return + if(i>=len(self.drawlist)): # if board is finished Only return + return 0 self.draw_image_target(self.drawlist[i]) @@ -331,6 +334,8 @@ class Gcompris_redraw: # Try the next level self.gcomprisBoard.sublevel=1 self.gcomprisBoard.level += 1 + + if(self.gcomprisBoard.level>self.gcomprisBoard.maxlevel) or self.gcomprisBoard.level*self.gcomprisBoard.sublevel>=len(self.drawlist): # the current board is finished : bail out gcompris.bonus.board_finished(gcompris.bonus.FINISHED_RANDOM) |