dir = "output" Dir.mkdir(dir) unless Dir.exist?(dir) $data_mapinfos = load_data("Data/MapInfos.rvdata2") Dir.glob("Data/Map[0-9]*[0-9].rvdata2") do |fn| map_id = fn[/Map(\d+)./, 1].to_i data = load_data(fn) events = data.events data.events = [] filename = "#{dir}/#{File.basename(fn, ".*")}_#{$data_mapinfos[map_id].name}" events.each do |id, ev| File.open("#{filename}_EV#{id}_#{ev.name}.txt", "wb") do |f| pages = ev.pages ev.pages = [] indent = 0 ev.inspect.split(" @").each do |s| if s[/^#<[A-Z][\w:]*?:0x/] f.puts s indent += 1 else f.puts (" " * indent) + "@#{s}" indent += 1 if s[/^\w+?=#<[A-Z][\w:]*?:0x/] indent -= 1 if s[/\w+?=.+?>,?$/] end end f.puts f.puts "======" f.puts pages.each_with_index do |page,index| list = page.list page.list = [] f.puts "yy[W #{index+1}z" indent = 0 page.inspect.split(" @").each do |s| if s[/^#<[A-Z][\w:]*?:0x/] f.puts s indent += 1 else f.puts (" " * indent) + "@#{s}" indent += 1 if s[/^\w+?=#<[A-Z][\w:]*?:0x/] indent -= 1 if s[/\w+?=.+?>,?$/] end end indent = 0 f.puts f.puts list.each {|s| f.puts s.inspect } f.puts f.puts "======" f.puts end end end end load_data("Data/CommonEvents.rvdata2").each do |e| next unless e File.open("#{dir}/COMMON#{e.id}_#{e.name}.txt", "wb") do |f| e.list.each {|s| f.puts s.inspect } end end exit