Example #1
0
 def print_say(self, ast, inmenu=False):
     if (not inmenu and self.index + 1 < len(self.block) and
         self.say_belongs_to_menu(ast, self.block[self.index + 1])):
         self.say_inside_menu = ast
         return
     self.indent()
     self.write(say_get_code(ast, inmenu))
Example #2
0
 def print_say(self, ast, inmenu=False):
     if (not inmenu and self.index + 1 < len(self.block) and
         self.say_belongs_to_menu(ast, self.block[self.index + 1])):
         self.say_inside_menu = ast
         return
     self.indent()
     self.write(say_get_code(ast, inmenu))
Example #3
0
    def create_translate(self, block):
        if self.saving_translations:
            return [
            ]  # Doesn't matter, since we're throwing this away in this case

        md5 = hashlib.md5()

        for i in block:
            if isinstance(i, renpy.ast.Say):
                code = say_get_code(i)
            elif isinstance(i, renpy.ast.UserStatement):
                code = i.line
            else:
                raise Exception(
                    "Don't know how to get canonical code for a %s" %
                    str(type(i)))
            md5.update(code.encode("utf-8") + b"\r\n")

        if self.label:
            base = self.label + "_" + md5.hexdigest()[:8]
        else:
            base = md5.hexdigest()[:8]

        i = 0
        suffix = ""

        while True:

            identifier = base + suffix

            if identifier not in self.identifiers:
                break

            i += 1
            suffix = "_{0}".format(i)

        self.identifiers.add(identifier)

        translated_block = self.dialogue.get(identifier)
        if translated_block is None:
            return block

        new_block = []
        old_linenumber = block[0].linenumber
        for ast in translated_block:
            new_ast = copy(ast)
            new_ast.linenumber = old_linenumber
            new_block.append(new_ast)
        return new_block
Example #4
0
    def create_translate(self, block):
        if self.saving_translations:
            return [] # Doesn't matter, since we're throwing this away in this case

        md5 = hashlib.md5()

        for i in block:
            if isinstance(i, renpy.ast.Say):
                code = say_get_code(i)
            elif isinstance(i, renpy.ast.UserStatement):
                code = i.line
            else:
                raise Exception("Don't know how to get canonical code for a %s" % str(type(i)))
            md5.update(code.encode("utf-8") + b"\r\n")

        if self.label:
            base = self.label + "_" + md5.hexdigest()[:8]
        else:
            base = md5.hexdigest()[:8]

        i = 0
        suffix = ""

        while True:

            identifier = base + suffix

            if identifier not in self.identifiers:
                break

            i += 1
            suffix = "_{0}".format(i)

        self.identifiers.add(identifier)

        translated_block = self.dialogue.get(identifier)
        if translated_block is None:
            return block

        new_block = []
        old_linenumber = block[0].linenumber
        for ast in translated_block:
            new_ast = copy(ast)
            new_ast.linenumber = old_linenumber
            new_block.append(new_ast)
        return new_block
Example #5
0
    def create_translate(self, block):
        if self.saving_translations:
            return [
            ]  # Doesn't matter, since we're throwing this away in this case

        md5 = hashlib.md5()

        for i in block:
            if isinstance(i, renpy.ast.Say):
                code = say_get_code(i)
            elif isinstance(i, renpy.ast.UserStatement):
                code = i.line
            else:
                raise Exception(
                    "Don't know how to get canonical code for a %s" %
                    str(type(i)))
            md5.update(code.encode("utf-8") + b"\r\n")

        digest = md5.hexdigest()[:8]

        identifier = self.unique_identifier(self.label, digest)
        self.identifiers.add(identifier)

        if self.alternate is not None:
            alternate = self.unique_identifier(self.alternate, digest)
            self.identifiers.add(alternate)
        else:
            alternate = None

        translated_block = self.dialogue.get(identifier)
        if (translated_block is None) and alternate:
            translated_block = self.dialogue.get(alternate)
        if translated_block is None:
            return block

        new_block = []
        old_linenumber = block[0].linenumber
        for ast in translated_block:
            new_ast = copy(ast)
            new_ast.linenumber = old_linenumber
            new_block.append(new_ast)
        return new_block