Ejemplo n.º 1
0
    def load(self, filename):
        self.nonstop = NonstopParser()
        self.nonstop.load(filename)

        if len(self.nonstop.script_pack) == 0:
            return

        self.bg = get_trial(self.nonstop.script_pack[0].scene_info,
                            show_box=False,
                            show_sprite=False)
        qt_pixmap = QtGui.QPixmap.fromImage(self.bg)
        self.ui.lblPreview.setPixmap(qt_pixmap)

        self.lines = []
        for i in range(len(self.nonstop.lines)):
            if self.nonstop.script_pack[i][
                    common.editor_config.lang_trans] != "":
                text = self.nonstop.script_pack[i][
                    common.editor_config.lang_trans]
            else:
                text = self.nonstop.script_pack[i][
                    common.editor_config.lang_orig]

            format = self.nonstop.script_pack[i].scene_info.format
            text_img = get_text(text, common.SCENE_MODES.debate, format)

            self.lines.append(QtGui.QPixmap.fromImage(text_img))

        self.anims = [None] * len(self.nonstop.lines)
        self.labels = [None] * len(self.nonstop.lines)
        self.timers = [None] * len(self.nonstop.lines)
def script_to_text(dir, translated = True, strip_clt = False, only_voiced = False, line_numbers = True):
  script_pack = ScriptPack()
  
  if dir[:7] == "nonstop":
    parser = NonstopParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:8] == "hs_mtb_s":
    parser = MTBParser()
    parser.load(dir)
    script_pack = parser.script_pack
  
  elif dir[:7] == "anagram":
    return u""
  
  else:
    script_pack.load_dir(dir, common.editor_config.umdimage_dir)
  
  # pack = ScriptPack(directory = dir, umdimage = "X:/Danganronpa/Demo_FINAL/umdimage/")
  
  output = []
  
  if len(script_pack) > 0:
  
    output.append("==================================================\n=== %s" % dir)
    room = get_map_name(script_pack[0].scene_info.room)
    if not room == None:
      output.append("\n=== Room: %s" % room)
    output.append("\n==================================================\n\n")
    
    for script in script_pack:
      voice = get_voice_file(script.scene_info.voice)
      if voice == None and only_voiced:
        continue
      
      if script.scene_info.special in [common.SCENE_SPECIAL.checkobj, common.SCENE_SPECIAL.checkchar, common.SCENE_SPECIAL.option, common.SCENE_SPECIAL.showopt]:
        output.append("********************\n\n")
      
      if line_numbers:
        output.append("[%04d.txt]" % script.scene_info.file_id)
        output.append("\n")
      
      output.append("[%s]\n" % (common.CHAR_IDS[script.scene_info.speaker] if script.scene_info.speaker in common.CHAR_IDS else "N/A"))
      
      if not voice == None:
        # output.append("  [Voice: %04d.at3, %s]\n" % (voice, common.CHAR_IDS[script.scene_info.voice.char_id] if script.scene_info.voice.char_id in common.CHAR_IDS else "N/A"))
        output.append("[Voice: %04d.at3" % (voice))
        if script.scene_info.voice.chapter == 0x63:
          output.append(" (Generic)")
        output.append("]\n")
      # output.append("\n")
      
      line = ""
      if translated and script.translated:
        if strip_clt:
          line = script.translated_notags
        else:
          line = script.translated
      
      else:
        if strip_clt:
          line = script.original_notags
        else:
          line = script.original
      
      output.append("  %s" % line.strip().replace("\n", "\n  "))
      output.append("\n\n")
  
  return u''.join(output)