lib/RGSS/serialize.rb in rvpacker-txt-1.0.0 vs lib/RGSS/serialize.rb in rvpacker-txt-1.1.0

- old
+ new

@@ -66,17 +66,17 @@ end nil end - def parse_parameter(code, parameter) + def self.parse_parameter(code, parameter) case code when 401, 405 case $game_type when "lisa" - match = parameter.match(/^\\et\[[0-9]+\]|\\nbt/) - parameter = parameter[match[0].length..] if match + match = parameter.scan(/^\\et\[[0-9]+\]|\\nbt/) + parameter = parameter.slice(match[0].length) if match else nil end when 102, 356 # Implement some custom parsing @@ -276,10 +276,16 @@ lines.add(currency_unit) unless currency_unit.is_a?(String) && currency_unit.empty? terms.instance_variables.each do |variable| value = terms.instance_variable_get(variable) + + if value.is_a?(String) + lines.add(value) unless value.empty? + next + end + value.each { |string| lines.add(string) unless string.is_a?(String) && string.empty? } end lines.add(game_title) unless game_title.is_a?(String) && game_title.empty? @@ -597,13 +603,18 @@ system_translation_map.key?(currency_unit) terms.instance_variables.each do |variable| value = terms.instance_variable_get(variable) - value.each_with_index do |string, i| - translated = system_translation_map[string] - value[i] = translated unless translated.nil? + if value.is_a?(String) + translated = system_translation_map[value] + value = translated unless translated.nil? + elsif value.is_a?(Array) + value.each_with_index do |string, i| + translated = system_translation_map[string] + value[i] = translated unless translated.nil? + end end terms.instance_variable_set(variable, value) end @@ -633,23 +644,15 @@ end File.write("#{output_path}/#{File.basename(scripts_file)}", Marshal.dump(script_entries), mode: 'wb') end - def self.serialize(version, action, directory, options = {}) + def self.serialize(engine, action, directory) start_time = Time.now - setup_classes(version, options) + setup_classes(engine) - options = options.clone - options[:sort] = true if %i[vx xp].include?(version) - options[:flow_classes] = [Color, Tone, RPG::BGM, RPG::BGS, RPG::MoveCommand, RPG::SE].freeze - options[:line_width] ||= 130 - - table_width = options[:table_width] - RGSS.reset_const(Table, :MAX_ROW_LENGTH, table_width || 20) - absolute_path = File.realpath(directory) paths = { original_path: File.join(absolute_path, 'Data'), translation_path: File.join(absolute_path, 'translation'), @@ -663,17 +666,17 @@ extensions = { ace: '.rvdata2', vx: '.rvdata', xp: '.rxdata' } files = ( Dir .children(paths[:original_path]) - .select { |filename| File.extname(filename) == extensions[version] } + .select { |filename| File.extname(filename) == extensions[engine] } .map { |filename| "#{paths[:original_path]}/#{filename}" } ) maps_files = [] other_files = [] - system_file = "#{paths[:original_path]}/System#{extensions[version]}" - scripts_file = "#{paths[:original_path]}/Scripts#{extensions[version]}" + system_file = "#{paths[:original_path]}/System#{extensions[engine]}" + scripts_file = "#{paths[:original_path]}/Scripts#{extensions[engine]}" $game_type = get_game_type(system_file) files.each do |file| basename = File.basename(file)