Bug is not stable, sometimes i can't reproduce it at all for some minutes, sometimes i get it just after several clicks.
How to reproduce:
1. unzip and run attached sample code
2. click on "plus" button very fast with a mouse (i was never able to reproduce it with a keyboard)
3. some time after you'll get traceback like this
Traceback:
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/start.rpy", line 75, in script
$ ui.interact()
File "game/start.rpy", line 75, in <module>
$ ui.interact()
ZeroDivisionError: float division by zero
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/start.rpy", line 75, in script
$ ui.interact()
File "c:\renpy\renpy\ast.py", line 785, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "c:\renpy\renpy\python.py", line 1382, in py_exec_bytecode
exec bytecode in globals, locals
File "game/start.rpy", line 75, in <module>
$ ui.interact()
File "c:\renpy\renpy\ui.py", line 247, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "c:\renpy\renpy\display\core.py", line 2145, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "c:\renpy\renpy\display\core.py", line 2474, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "c:\renpy\renpy\display\core.py", line 1673, in draw_screen
renpy.config.screen_height,
File "render.pyx", line 363, in renpy.display.render.render_screen (gen\renpy.display.render.c:5330)
File "render.pyx", line 174, in renpy.display.render.render (gen\renpy.display.render.c:2537)
File "c:\renpy\renpy\display\layout.py", line 618, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 98, in renpy.display.render.render (gen\renpy.display.render.c:2849)
File "render.pyx", line 174, in renpy.display.render.render (gen\renpy.display.render.c:2537)
File "c:\renpy\renpy\display\layout.py", line 618, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 98, in renpy.display.render.render (gen\renpy.display.render.c:2849)
File "render.pyx", line 174, in renpy.display.render.render (gen\renpy.display.render.c:2537)
File "c:\renpy\renpy\display\layout.py", line 618, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 98, in renpy.display.render.render (gen\renpy.display.render.c:2849)
File "render.pyx", line 174, in renpy.display.render.render (gen\renpy.display.render.c:2537)
File "c:\renpy\renpy\display\layout.py", line 618, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 98, in renpy.display.render.render (gen\renpy.display.render.c:2849)
File "render.pyx", line 174, in renpy.display.render.render (gen\renpy.display.render.c:2537)
File "c:\renpy\renpy\display\dragdrop.py", line 405, in render
done = (at - self.at) / (self.target_at - self.at)
ZeroDivisionError: float division by zero
Windows-post2008Server-6.2.9200
Ren'Py 6.18.2.729
Code: Select all
# Determine if we need to do the snap animation.
if at >= self.target_at:
self.x = self.target_x
self.y = self.target_y
else:
done = (at - self.at) / (self.target_at - self.at)
self.x = absolute(self.x + done * (self.target_x - self.x))
self.y = absolute(self.y + done * (self.target_y - self.y))
redraw(self, 0)
(at, self.at, self.target_at, self.x, self.y, self.target_x, self.target_y) = (0.0, 0.4099998474121094, 0.4099998474121094, 689, 279, 689, 279)