init 999 python: Replay.locked = property(lambda _: False, lambda *_: None) REPLAY_GALLERY_SCREENS = {screen for screen in renpy.display.screen.screens_by_name if screen.endswith(u"gallery") and screen not in {"replay_gallery", u"cg_gallery"}} class PersistentPatch: def __init__(self, condition): self.condition = condition def __getattr__(self, name): if self.condition(name): return True return getattr(persistent, name) seen_persistent = PersistentPatch(lambda name: name.endswith("seen")) pornmag_persistent = PersistentPatch(lambda name: unicode(name[-1]).isdecimal()) met_persistent = PersistentPatch(lambda name: name.endswith("met")) class PatchedContext(renpy.sl2.slast.SLContext): def __init__(self, *args, **kwargs): super(PatchedContext, self).__init__(*args, **kwargs) screen_name = renpy.display.screen.current_screen().screen_name[0] if screen_name in REPLAY_GALLERY_SCREENS: self.scope["persistent"] = seen_persistent elif screen_name == "cg_gallery": self.scope["persistent"] = pornmag_persistent elif screen_name == "replay_gallery": self.scope["persistent"] = met_persistent renpy.sl2.slast.SLContext = PatchedContext