def write_wrp(stream)
stream.binmode
writer = BinaryWriter.new(stream)
stream.write ARMA_MAGIC
writer.write_uint32 @texture_index[0].size
writer.write_uint32 @texture_index.size
writer.write_uint32 @terrain_height[0].size
writer.write_uint32 @terrain_height.size
writer.write_float @texture_cell_size
reset_progress 'Exporting WRP (terrain)', @terrain_height.size
@terrain_height.each do |row|
writer.write_float row
increment_progress
end
reset_progress 'Exporting WRP (textures)', @textures.size
@texture_index.each do |row|
writer.write_uint16 row
end
writer.write_uint32(@textures.size)
@textures.each do |texture|
texture.write(writer, stream)
increment_progress
end
reset_progress 'Exporting WRP (objects)', @objects.size / OBJECTS_PER_PROGRESS
@objects.each_with_index do |object, index|
object.write(writer, stream)
increment_progress if index.modulo(OBJECTS_PER_PROGRESS) == 0
end
end