Skip Callbacks

* Added skip start/end interaction callbacks support
* Fixed Doll images not being refreshed after exiting skip interaction
This commit is contained in:
LoafyLemon 2022-06-20 19:41:04 +01:00
parent b81d7323c5
commit 16bea0cbde
2 changed files with 37 additions and 2 deletions

View File

@ -22,11 +22,10 @@ define sprite_pos = {
}
}
init -1 python:
init python:
def replace_text(s):
s = s.replace('--', u'\u2014') # em dash
return s
config.replace_text = replace_text

View File

@ -0,0 +1,36 @@
init -1 python:
start_skip_callbacks = []
end_skip_callbacks = []
class SkipCallbacksHandler(NoRollback):
def __init__(self):
self.was_skipping = False
def __call__(self):
is_skipping = renpy.is_skipping()
was_skipping = self.was_skipping
if is_skipping and not was_skipping:
self.was_skipping = True
for c in start_skip_callbacks:
c()
elif was_skipping and not renpy.is_skipping():
self.was_skipping = False
for c in end_skip_callbacks:
c()
def rebuild_dolls():
if renpy.in_rollback():
return
for c in renpy.store.CHARACTERS:
c = get_character_object(c)
c.rebuild_image()
config.interact_callbacks.append(SkipCallbacksHandler())
end_skip_callbacks.append(rebuild_dolls)