    def reset(self, old_scene=None, screen=None):
        """
        Reset the scene ready for playing.

        :param old_scene: The previous version of this Scene that was running before the
            application reset - e.g. due to a screen resize.
        :param screen: New screen to use if old_scene is not None.
        """
        # Always reset all the effects.
        for effect in self._effects:
            effect.reset()

        # If we have an old Scene to recreate, get the data out of that and
        # apply it where possible by cloning objects where appropriate.
        if old_scene:
            for old_effect in old_scene.effects:
                # catching AttributeErrors here has hidden bugs, so explicitly
                # check for the cloning interface before calling it.
                if hasattr(old_effect, "clone"):
                    old_effect.clone(screen, self)
Reset the scene ready for playing.

:param old_scene: The previous version of this Scene that was running before the
application reset - e.g. due to a screen resize.
:param screen: New screen to use if old_scene is not None.
asciimatics/scene.py