Yeah... no kidding
We've been working on and off on a game for over three years now and there is more than 120k lines of intertwined code and content where classes build/calculate complex arguments to call/show custom displayable, screens, atl and etc. Ripping something out that breaks on engine upgrades requires hours to narrow down the issue and to create a project to replicate it.
I've also just encountered this in a bit of code that went completely unchanged from .10 to .11:
Code: Select all
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/library/screens/arena_inside.rpy", line 46, in script
$ pytfall.arena.check_before_chainfight()
File "game/library/screens/arena_inside.rpy", line 46, in <module>
$ pytfall.arena.check_before_chainfight()
File "game/library/classes - arena.rpy", line 1071, in check_before_chainfight
self.setup_chainfight()
File "game/library/classes - arena.rpy", line 1181, in setup_chainfight
renpy.call_screen("arena_minigame", 50, 0.01, 6, d)
ZeroDivisionError: integer division or modulo by zero
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/library/screens/arena_inside.rpy", line 46, in script
$ pytfall.arena.check_before_chainfight()
File "D:\Coding\Dropbox\Dev\RenPy\renpy\ast.py", line 805, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\python.py", line 1642, in py_exec_bytecode
exec bytecode in globals, locals
File "game/library/screens/arena_inside.rpy", line 46, in <module>
$ pytfall.arena.check_before_chainfight()
File "game/library/classes - arena.rpy", line 1071, in check_before_chainfight
self.setup_chainfight()
File "game/library/classes - arena.rpy", line 1181, in setup_chainfight
renpy.call_screen("arena_minigame", 50, 0.01, 6, d)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\exports.py", line 2496, in call_screen
rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\ui.py", line 278, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\core.py", line 2494, in interact
repeat, rv = self.interact_core(preloads=preloads, **kwargs)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\core.py", line 2848, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\core.py", line 1914, in draw_screen
renpy.config.screen_height,
File "renpy/display/render.pyx", line 416, in renpy.display.render.render_screen (gen\renpy.display.render.c:6685)
rv = render(root, width, height, 0, 0)
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\screen.py", line 618, in render
child = renpy.display.render.render(self.child, w, h, st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 661, in render
surf = render(child, width, height, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 862, in render
surf = render(d, width - x, rh, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 818, in render
surf = render(d, rw, height - y, cst, cat)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\layout.py", line 1074, in render
back = render(style.background, bw, bh, st, at)
File "renpy/display/render.pyx", line 103, in renpy.display.render.render (gen\renpy.display.render.c:3319)
cpdef render(d, object widtho, object heighto, double st, double at):
File "renpy/display/render.pyx", line 185, in renpy.display.render.render (gen\renpy.display.render.c:2857)
rv = d.render(widtho, heighto, st, at)
File "D:\Coding\Dropbox\Dev\RenPy\renpy\display\imagelike.py", line 266, in render
left = self.left * xborder / bw
ZeroDivisionError: integer division or modulo by zero
Windows-8-6.2.9200
Ren'Py 6.99.11.1700
On a side note, a lot of displayable alignments (or frame/image re-size or both) broke down but I think it is due to previous issues (that Nyaatrap mentioned on page one) that have now been fixed so I am not reporting that as a bug (yet). Chances are that it's more appropriate to rewrite a couple of screen adjusting positional properties than trying to figure out what's wrong.