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)