saber-nyan / ddlc-android

[WIP] "Doki Doki Literature Club!" Android port
https://vndb.org/v21905
81 stars 21 forks source link

Черный экран, странности autoload() #1

Closed saber-nyan closed 6 years ago

saber-nyan commented 6 years ago

Очень странные вещи происходят при сворачивании и последующем разворачивании ВН. Есть несколько вариантов развития событий:

Ещё сильнее раздражает, что то же самое происходит при выключении экрана.

Для исправления придется копаться в вещах, связанных с autoload(). Возможно, стоит включить автосейвы, но они могут повлиять на игровой процесс.

saber-nyan commented 6 years ago

Черный экран остается именно при сворачиваниие, в логе при этом:

I/python  (17820): Entered background.

Возвращаюсь в окно:

I/python  (17820): Entering foreground.


При выключении экрана интерфейс съезжает, в логе:

I/python  (17820): Entered background.
I/python  (17820): Entering foreground.

После включения:

I/python  (17820): Entered background.
I/python  (17820): Entering foreground.

Временный обход - несколько раз включить-выключить экран.

saber-nyan commented 6 years ago

Хм, теперь при выключении экрана все работает отлично, а вот при сворачвании происходит то же, что и раньше при выключении... 🤔 Кстати, для решения достаточно один раз выключить-включить экран.

saber-nyan commented 6 years ago

Смог выудить трейс:

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "renpy/common/00start.rpy", line 270, in <module>
  File "renpy/common/00action_file.rpy", line 432, in __call__
RestartTopContext: Oh jeez...I didn't break anything, did I? Hold on a sec, I can probably fix this...I think...
Actually, you know what? This would probably be a lot easier if I just deleted her. She's the one who's making this so difficult. Ahaha! Well, here's goes nothing.

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/execution.py", line 795, in run_context
    context.run()
  File "00start.rpyc", line 266, in script
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/ast.py", line 827, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/python.py", line 1764, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/00start.rpy", line 270, in <module>
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/game.py", line 336, in call_in_new_context
    return renpy.execution.run_context(False)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/execution.py", line 795, in run_context
    context.run()
  File "_layout/screen_main_menu.rpymc", line 28, in script
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/ast.py", line 827, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/python.py", line 1764, in py_exec_bytecode
    exec bytecode in globals, locals
  File "renpy/common/_layout/screen_main_menu.rpym", line 35, in <module>
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/ui.py", line 287, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/core.py", line 2553, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/core.py", line 3237, in interact_core
    rv = root_widget.event(ev, x, y, 0)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/screen.py", line 653, in event
    rv = self.child.event(ev, x, y, st)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 232, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 232, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 969, in event
    rv = i.event(ev, x - xo, y - yo, cst)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/layout.py", line 232, in event
    rv = d.event(ev, x - xo, y - yo, st)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/behavior.py", line 897, in event
    return handle_click(self.clicked)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/behavior.py", line 832, in handle_click
    rv = run(action)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/display/behavior.py", line 306, in run
    return action(*args, **kwargs)
  File "renpy/common/00action_file.rpy", line 432, in __call__
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/loadsave.py", line 608, in load
    log.unfreeze(roots, label="_after_load")
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/python.py", line 1719, in unfreeze
    self.rollback(0, force=True, label=label, greedy=greedy, on_load=True)
  File "/data/data/ru.saber_nyan.ddlc/files/renpy/python.py", line 1643, in rollback
    raise renpy.game.RestartTopContext(label)
RestartTopContext: Oh jeez...I didn't break anything, did I? Hold on a sec, I can probably fix this...I think...
Actually, you know what? This would probably be a lot easier if I just deleted her. She's the one who's making this so difficult. Ahaha! Well, here's goes nothing.

Похоже, опять проделки разработчика.

saber-nyan commented 6 years ago

Очень мутная вещь. Кажется, само исключение вызывается специально. Осталось найти место, откуда.

saber-nyan commented 6 years ago

Как бонус, при выходе из игры и последующем входе, она продолжится на месте, где пользователь вышел, а не откроет главное меню. Полезно, если пользователь забыл сохраниться.