arc_unpacker
.archive.dat
→ archive.dat~/*
, program now produces archive~.dat/*
.Converter
and Archive
into common interface, Transformer
.run_converters()
- it's now called behind the scenes.Transformer::add_transformer(Archive *)
.Transformer
registration (Transformer::add_transformer(Transformer *)
).Converter
, Image
and Sound
so that instead of updating File&
s, they create new std::unique_ptr<File>
s from scratch (basing on given file name, so that they know how to change the file extension where applicable.)file_decoder
into arc_unpacker
. The project has just one binary now: arc_unpacker
.TransformerFactory
.unpack_internal
and decode_internal
were public io
→ io/io
file_io
→ io/file_io
buffered_io
→ io/buffered_io
bit_reader
→ io/bit_reader
factory/*
→ formats/transformer_factory
formats/image
→ util/image
formats/sound
→ util/sound
endian
→ util/endian
src/
looks a lot less cluttered now.bin/arc_unpacker.cc
into a new main()
-free class at arc_unpacker.cc
so that it can be tested gracefully in unit tests.