use super::Inner;
use crate::wad::Builder;
impl Builder {
pub fn flatten(&mut self) {
loop {
let index = 'find_first_duplicate: {
let directory = self.inner.directory();
for (index, lump) in directory.iter().enumerate().rev() {
for (other_index, other) in directory.iter().enumerate() {
if other_index == index {
break;
}
if other.name() == lump.name() {
break 'find_first_duplicate index;
}
}
}
return;
};
match self.inner {
Inner::Wad { ref mut directory, .. } => {
directory.remove(index);
}
Inner::Wad2 { ref mut directory, .. } => {
directory.remove(index);
}
Inner::Wad3 { ref mut directory, .. } => {
directory.remove(index);
}
}
}
}
}