Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/boards
diff options
context:
space:
mode:
authorBruno 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)
commit732a24b91036fe5c015f7fb09b6027611a9e7701 (patch)
tree94e4a02f1a029632eb633bd7c749a66ad2470aa6 /src/boards
parent0c8b8a52b999d4f60b59d6388a34bf0b43908fcb (diff)
Fixed crash bug when board finished.
svn path=/trunk/; revision=3711
Diffstat (limited to 'src/boards')
-rw-r--r--src/boards/python/redraw.py19
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)